T-SQL :如何在空列上使用子字符串输出空格
T-SQL : How to output whitespaces with Substring on an empty column
我正在尝试将 Informix select 查询转换为 T-SQL.
在 YYYYMMDD 格式的日期列上,Informix 查询在 Select 中的 Statusdate 下方,我编写了等效的 T-SQL,它可以完美地以 YYYY-MM 格式输出 Statusdate -DD.
Informix:
Date[1,4]||"-"||Date[5,6]||"-"||Date[7,8] as StatusDate
T-SQL:
SUBSTRING(Date,1,4)+'-'+SUBSTRING(Date,5,2)+'-'+SUBSTRING(Date,7,2) AS StatusDate
但如果日期列为空,Informix 输出为 [ - - ] 即 4spaces-2spaces-2spaces
而 SQL 输出是 [--] 即没有空格。
当列为空时,如何更新 T-SQL 查询以获得类似于 Informix 的输出。
您可以在此处使用 CASE
表达式来显式处理 NULL
日期的输出:
CASE WHEN Date IS NOT NULL
THEN LEFT(Date, 4) + '-' + SUBSTRING(Date, 5, 2) + '-' + RIGHT(Date, 2)
ELSE ' - - ' END AS StatusDate
我正在尝试将 Informix select 查询转换为 T-SQL.
在 YYYYMMDD 格式的日期列上,Informix 查询在 Select 中的 Statusdate 下方,我编写了等效的 T-SQL,它可以完美地以 YYYY-MM 格式输出 Statusdate -DD.
Informix:
Date[1,4]||"-"||Date[5,6]||"-"||Date[7,8] as StatusDate
T-SQL:
SUBSTRING(Date,1,4)+'-'+SUBSTRING(Date,5,2)+'-'+SUBSTRING(Date,7,2) AS StatusDate
但如果日期列为空,Informix 输出为 [ - - ] 即 4spaces-2spaces-2spaces 而 SQL 输出是 [--] 即没有空格。
当列为空时,如何更新 T-SQL 查询以获得类似于 Informix 的输出。
您可以在此处使用 CASE
表达式来显式处理 NULL
日期的输出:
CASE WHEN Date IS NOT NULL
THEN LEFT(Date, 4) + '-' + SUBSTRING(Date, 5, 2) + '-' + RIGHT(Date, 2)
ELSE ' - - ' END AS StatusDate