Zer*_*ity 6 sql-server sql-server-2005 iif
是否IIF
声明在所有版本的SQL Server的存在?
我已经在MSDN上查了一个教程.
但是当我试图在我的机器上运行此代码时
DECLARE @newDate datetime
SET @newDate = CONVERT(varchar, {fn NOW()}, 111)
SELECT IIF(@newDate > '2010/12/2', 'Greater', 'smaller')
Run Code Online (Sandbox Code Playgroud)
但是我收到"'>'附近语法错误的错误."
有人可以在SQL Server 2005中为我提供一个例子来说明该IIF
语句的存在吗?
mar*_*c_s 11
该IIF
语句仅存在于MDX中 - SQL Server Analysis Services 的查询语言 - SQL Server 的数据仓库端.
普通T-SQL并没有有一个IIF
说法.
你可以在T-SQL中做的最好的就是使用该CASE.... WHEN... THEN...
语句.
你最好使用CASE表达式:
DECLARE @newDate datetime
SET @newDate = CONVERT(varchar, {fn NOW()}, 111)
SELECT CASE WHEN @newDate > '20101202' THEN 'Greater' ELSE 'smaller' END
Run Code Online (Sandbox Code Playgroud)
另请注意,我已将日期文字切换为安全格式 - "2010/12/2"可由SQL服务器解释为2月12日或12月2日.