Microsoft SQL Server-条件变量分配
我正在尝试在Microsoft SQL Server中执行以下操作:Microsoft SQL Server-条件变量分配,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试在Microsoft SQL Server中执行以下操作: DECLARE @isparent int; SET @isparent = iif(account.parentid is not null, 1, 0); SELECT IIF(@isparent = 1, parentenrollment, enrollment) "Enrol
DECLARE @isparent int;
SET @isparent = iif(account.parentid is not null,
1,
0);
SELECT
IIF(@isparent = 1,
parentenrollment,
enrollment) "Enrollment"
FROM
Accounts
显然,这大大简化了,但其思想是基于表中的内容在变量(@isparent,上图)中存储一个值,然后重新读取该变量,使用它来确定要显示的值
这可能吗?如果是,如何使用?您可以使用:
DECLARE @isparent int;
SELECT @isparent = IIF(parentid is not null, parentenrollment, enrollment)
FROM Accounts
WHERE ... -- condition that returns single row
根据您的代码,您不需要输入变量,我认为您正在尝试按照
SELECT
IIF(parentid is not null,
parentenrollment,
enrollment) Enrollment
FROM
Accounts
这和
SELECT CASE WHEN ParentId IS NOT NULL THEN ParentEnrollment
ELSE Enrollment
END Enrollment
FROM Accounts
如果您确实想检查parentid
是否为null并将值存储在变量中,那么您的查询应该返回一(1)行,这可以通过两种方式完成
- 上下订单
SELECT TOP 1 @isparent = IIF(parentid IS NOT NULL, 1, 0) FROM Accounts ORDER BY <Your Order Here>
选择TOP 1@isparent=IIF(parentid不为NULL,1,0) 来自帐户 订购人
- WHERE子句,其条件仅返回1行
SELECT @isparent = IIF(parentid IS NOT NULL, 1, 0) FROM Accounts WHERE <Type Your Condition(s) Here>
SELECT@isparent=IIF(parentid不为NULL,1,0) 来自帐户 哪里
account.parentid
是一个打字错误,您的意思是accounts.parentid