2017-05-31 69 views
0

我想构建一个查询来连接数据库中的multipla值。 所以这是查询:连接可能的NULL值的查询

SELECT FiscalCode + ' - ' + Name + ' ' + Surname + ' - ' + City + ' - ' BirthTime AS Value, FiscalCode AS OrderBy 
FROM AA_V_PHR_CCD_Person 

FiscalCode,名字,姓氏IS NOT NULL到数据库的配置,但城市和BirthTime可为空进入数据库配置。

现在,如果城市或BirthTime在数据库中的NULL查询的结果是NULL,我可以解决这个问题?

回答

2

使用​​3210用空字符串替换null

SELECT FiscalCode + ' - ' + Name + ' ' + Surname + ' - ' + COALESCE(City,'') + ' - ' 
COALESCE(BirthTime,'') AS Value, FiscalCode AS OrderBy 
FROM AA_V_PHR_CCD_Person 

从SQL Server 2012及更高版本,可以使用CONCATnull值隐含转换为空字符串。

SELECT CONCAT(FiscalCode , ' - ' , Name , ' ' , Surname , ' - ' , City, ' - ', BirthTime) as Value, 
FiscalCode AS OrderBy 
FROM AA_V_PHR_CCD_Person 
0

您可以使用ISNULL

SELECT FiscalCode + ' - ' + Name + ' ' + Surname + ' - ' + ISNULL(City,'') + ' - ' 
ISNULL(BirthTime,'') AS Value, FiscalCode AS OrderBy 
FROM AA_V_PHR_CCD_Person 
0

您可以使用ISNULL做到这一点:

SELECT ISNULL(FiscalCode,'') + ' - ' + ISNULL(Name,'') + ' ' + ISNULL(Surname,'') + ' - ' + ISNULL(City,'') + ' - ' + ISNULL(BirthTime,'') AS Value, FiscalCode AS OrderBy FROM AA_V_PHR_CCD_Person