首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在计算列公式中使用大小写分配列值时的语法错误

在计算列公式中使用大小写分配列值时的语法错误
EN

Stack Overflow用户
提问于 2016-06-18 21:04:01
回答 2查看 64关注 0票数 0

我试图在计算列别名中使用以下情况,但它显示了语法错误。

代码语言:javascript
复制
[Password_Last_Changed] [datetime] AS
SELECT CASE
WHEN ([SUA_History1_Date] IS NOT NULL) then [SUA_History1_Date]
WHEN ([SUA_History1_Date] IS NULL) then [SUA_History2_Date]
WHEN ([SUA_History2_Date] IS NULL) then [SUA_History3_Date] 
WHEN ([SUA_History3_Date] IS NULL) then [SUA_History4_Date] 
WHEN ([SUA_History4_Date] IS NULL) then [SUA_History5_Date]
ELSE NULL 
END

不知道哪里出了问题。如果这个逻辑有更好的方法,请让我试试。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-25 11:55:00

对于这个问题,使用聚结比ISNULL或CASE..WHEN更好的选择,因为COALESCE表达式的输入值可以多次计算。

还可以使用NULLIF检查NULL值列中的条件。

ISNULL的空值转换为int数据类型,而对于COALESCE,则必须提供数据类型。ISNULL只需要2个参数,而COALESCE则需要可变数量的参数。

票数 1
EN

Stack Overflow用户

发布于 2016-06-18 21:11:25

您可以使用聚结

代码语言:javascript
复制
COALESCE([SUA_History1_Date],[SUA_History2_Date],[SUA_History3_Date],[SUA_History4_Date],[SUA_History5_Date])

按顺序计算参数,并返回最初不计算为NULL的第一个表达式的当前值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37901601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档