我在存储过程中使用了一个简单的
if exists
语句,但在输出中,如果记录不存在,就不能打印出伪列的值。
SQL Server 2012
CREATE PROCEDURE test1
@Empid NVARCHAR(20)
BEGIN
IF EXISTS (SELECT TOP 1 * FROM employees WHERE id = @Empid)
BEGIN
SELECT id, name, salary, 'Newemp' AS status, 1 AS Code
FROM employees
IF NOT EXISTS (SELECT TOP 1 * FROM employees WHERE id = @Empid)
BEGIN
SELECT id, name, salary, 'Oldemp' AS status1, 0 AS Code1
FROM employees
如果记录存在,会按预期返回
ID Name Salary Status Code
-------------------------------
123 kkr 1000 Newemp 1
如果记录不存在--这就是问题所在。
Id Name Salary Status1 Code1
-----------------------------
希望的值。
ID Name Salary Status1 Code1
----------------------------
Oldemp 0
如果记录不存在,它没有打印出伪列的值。我已经改变了列名并执行了,以确保它取的是正确的列,是的,它取的是正确的列,但却不能打印值。