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')
,我收到了“'>'附近的语法不正确”的错误。
有人可以为我提供一个 SQL Server 2005 中存在 IIF
语句的示例吗?
Does IIF
statement exists in all version of SQL Server ?
I have checked a tutorial on MSDN.
But when I tried to run this code on my machine
DECLARE @newDate datetime
SET @newDate = CONVERT(varchar, {fn NOW()}, 111)
SELECT IIF(@newDate > '2010/12/2', 'Greater', 'smaller')
But I am getting error of "Incorrect syntax near '>'."
Can someone provide me an example in SQL Server 2005 for the existence of the IIF
statement?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
该
IIF
语句仅存在于 MDX 中 - SQL Server 分析 服务(SQL Server 的数据仓库端)的查询语言。普通 T-SQL 没有有
IIF
语句。在 T-SQL 中您能做的最好的事情就是使用
CASE.... WHEN... THEN...
语句。That
IIF
statement only exists in MDX - the query language for SQL Server Analysis Services - the datawarehousing side of SQL Server.Plain T-SQL does not have an
IIF
statement.The best you can do in T-SQL is use the
CASE.... WHEN... THEN...
statement.您最好使用 CASE 表达式:
另请注意,我已将日期文字转换为安全格式 - SQL Server 可以将“2010/12/2”解释为 2 月 12 日或 12 月 2 日。
You're better off using a CASE expression:
Please also note that I've switched your date literal to a safe format - '2010/12/2' could be interpreted by SQL server as either the 12th February or 2nd December.