1

我有一个查询,其中包含两列是日期时间字段;它们是 REVIEW_START_DT 和 REVIEW_END_DT。我将列日期格式都转换为日-月-年格式。如果单元格在任一列中有 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]
4

2 回答 2

2

一个测试nullISnot=如:if x is null ...因为没有什么是等于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')

更好的

CASE WHEN REVIEW_START_DT IS NULL THEN 'N/A' 
  ELSE REPLACE(CONVERT (varchar(9), REVIEW_START_DT, 6), ' ', '-') 
END
于 2013-07-23T16:42:08.167 回答
0

使用Coalesce()功能:

SELECT Coalesce(Cast(Replace(REVIEW_START_DR, ' ', '-') As char(10)), 'N/A')
于 2013-07-23T16:58:44.047 回答