[英]Case statement error not able to add a column value with statement
如果配置文件日期已更改,我想在 output 中触发,所以也想添加旧日期,但它给出了错误
Select Name,
case when a.PROFILE_START != b.PROFILE_START then 'Trigger: Start Date Changed'+ b.PROFILE_START
else '' end
from a
join b on a.name = b.name
此代码给出错误
数据类型 varchar 和 date 在 add 运算符中不兼容。
Select Name ,
case when a.PROFILE_START != b.PROFILE_START then 'Trigger: Start Date Changed '+ CAST(b.PROFILE_START AS VARCHAR(100))
else '' end
from a
join b on a.name = b.name
最简单的解决方案是使用concat()
:
Select Name,
(case when a.PROFILE_START <> b.PROFILE_START
then concat('Trigger: Start Date Changed ', b.PROFILE_START)
else ''
end)
from a join
b
on a.name = b.name;
但是,在处理日期时,我认为您应该明确使用CONVERT()
或FORMAT()
的格式。 我会推荐 ISO 标准格式:
Select Name,
(case when a.PROFILE_START <> b.PROFILE_START
then concat('Trigger: Start Date Changed ',
convert(varchar(255), b.PROFILE_START, 121)
)
else ''
end)
from a join
b
on a.name = b.name;
如果您喜欢其他格式,可以仔细阅读文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.