我有一个查询,其中包含两列是Datetime字段;它们是REVIEW_START_DT和REVIEW_END_DT。我将列日期格式转换为日 - 月 - 年格式。如果Cell在任一列中具有Null值,则Null值将替换为“N / A”值。我试图将其写入程序,但我仍然得到Null值。我无法弄清楚为什么。
SELECT
ASSESSMENT_ID,
Reviewer_Name,
Examinee_Name,
Assessment_Type,
Assessment_Status,
CASE when REPLACE(CONVERT (varchar(9), REVIEW_START_DT, 6), ' ', '-') =NUll then 'N/A'
else REPLACE(CONVERT (varchar(9), REVIEW_START_DT, 6), ' ', '-') end as REVIEW_START_DT,
CASE when
REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-')=NUll then 'N/A'
else REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-') end as REVIEW_END_DT,
Assessment_Link
FROM [New_EEs].[dbo].[vw_SBC_Assessment_Assignments]
答案 0 :(得分:2)
使用 null
而不是IS
测试=
if x is null ...
,因为没有等于{ {1}}。
NULL
或
REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-') IS NULL THEN 'N/A'
更好的
ISNULL(REPLACE(CONVERT (varchar(9), REVIEW_END_DT, 6), ' ', '-'), 'N/A')
答案 1 :(得分:0)
使用Coalesce()
功能:
SELECT Coalesce(Cast(Replace(REVIEW_START_DR, ' ', '-') As char(10)), 'N/A')