2017-04-26 60 views
0

您可以结合CASE和REPLACE语句吗?结合替换和case语句

我有这样的说法,显示NULL作为空白:

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

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

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

会如何我把这两个结合起来?

回答

0

COALESCE()CASE更简洁:

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

你不应该把列别名在单引号。为避免代码中出现问题,请仅为字符串和日期常量使用单引号。

1

试试这个:

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