结合替换和案例陈述

时间:2017-04-26 15:48:30

标签: sql

你能结合CASE和REPLACE语句吗?

我有这个语句将NULL显示为空白:

CASE 
    WHEN f.descriptionofwork IS NULL
    THEN 
         ''
    ELSE 
         f.descriptionofwork
END as 'Description'

但是我还需要删除数据中的换行符/返回值,并且通常会使用以下语句:

Replace(Replace(f.descriptionofwork,CHAR(10),''),CHAR(13),'') as 'Description'

我如何将两者合并?

2 个答案:

答案 0 :(得分:1)

试试这个:

CASE 
    WHEN f.descriptionofwork IS NULL THEN '' 
    ELSE Replace(Replace(f.descriptionofwork,CHAR(10),''),CHAR(13),'') 
END as 'Description'

答案 1 :(得分:0)

COALESCE()CASE更简洁:

SELECT COALESCE(Replace(Replace(f.descriptionofwork, CHAR(10), ''
                               ), CHAR(13), ''
                       ), '') as Description

您不应将列别名放在单引号中。为了避免代码中的问题,只使用单引号作为字符串和日期常量。