我目前正在进行一些数据测试,所以我想将我的文件导出到我的本地(进入excel格式),但我的文件中有列AGE,如果年龄值= 0,则返回为空白单元格(i希望它在映射完成后在excel中返回0)。它相应地返回其他值(例如:1,2,3,4),除了0值。我确信我应该使用ISNULL(),但是我不能用它来保存0而不是空白单元格。
PS /:AGE是一年的计算 deprStartDate是一个VARCHAR列我的代码目前
year(getdate()) - CAST(ISNULL(right(LTRIM(RTRIM(REPLACE(REPLACE(pcld.[deprStartDate], CHAR(13), ''), CHAR(10), ''))),4),0) AS VARCHAR) as [AGE]
year(getdate()) - COALESCE(CAST(right(LTRIM(RTRIM(REPLACE(REPLACE(pcld.[deprStartDate], CHAR(13), ''), CHAR(10), ''))),4) AS INT),'') as [AGE]
我确信这是获得0的正确功能,但我不确定我是否以正确的方式做到了。需要有人帮助我,因为我对SQL很新。非常感谢。
答案 0 :(得分:0)
如果你想" 0"当值为"空白"时返回(大概是NULL
),然后将该值放在COALESCE()
:
year(getdate()) - COALESCE(CAST(right(LTRIM(RTRIM(REPLACE(REPLACE(pcld.[deprStartDate], CHAR(13), ''), CHAR(10), ''))),4) AS INT), '0') as [AGE]
我不能说出你的其他逻辑,但价值应该是'0'
,而不是''
。