为什么这会在等号上抛出错误?
select IIF((SUBSTRING('A1234', 1, 1) = 'A'), TRUE, FALSE) as IsAustraliaUser
错误:
Msg 102,Level 15,State 1,Line 1
'='附近的语法不正确。
答案 0 :(得分:6)
IIF
是SQL Server 2012的一项功能,您需要使用CASE
SELECT CASE SUBSTRING('A1234', 1, 1)
WHEN 'A' THEN 'TRUE'
ELSE 'FALSE'
END
答案 1 :(得分:1)
你应该用CASE替换IIF,在SQL Server中也不存在TRUE和FALSE,你可以使用VARCHAR或BIT
select CASE WHEN SUBSTRING('A1234', 1, 1) = 'A' THEN 'TRUE' ELSE 'FALSE' END as IsAustraliaUser
答案 2 :(得分:1)
我认为SQL不支持IIF的这种语法(除非你使用2012),用case替换。
SELECT CASE WHEN ( SUBSTRING('A1234', 1, 1) = 'A' ) THEN 'TRUE'
ELSE 'FALSE'
END AS IsAustraliaUser