Sql server I';我试图在SQL中运行一个查询,我想知道为什么ADDRESS\u LINE\u 2超过ADDRESS\u LINE\u 1并显示空值

Sql server I';我试图在SQL中运行一个查询,我想知道为什么ADDRESS\u LINE\u 2超过ADDRESS\u LINE\u 1并显示空值,sql-server,Sql Server,如果将字符串与空值串联,则结果为空 使用coalesce或isnull确保没有空值: SELECT EMPLOYEE.EMPLOYEE_FNAME + EMPLOYEE.EMPLOYEE_LNAME + EMPLOYEE.EMPLOYEE_PRIMARY_NUMBER + EMPLOYEE.EMPLOYEE_EMAIL AS EMPLOYEE, ADDRESS.ADDRESS_LINE_1 + ADDRESS.ADDRESS_LINE_2 + ADD

如果将字符串与空值串联,则结果为空

使用
coalesce
isnull
确保没有空值:

SELECT    
   EMPLOYEE.EMPLOYEE_FNAME + EMPLOYEE.EMPLOYEE_LNAME +    
         EMPLOYEE.EMPLOYEE_PRIMARY_NUMBER + EMPLOYEE.EMPLOYEE_EMAIL AS EMPLOYEE, 
  ADDRESS.ADDRESS_LINE_1 + ADDRESS.ADDRESS_LINE_2 + ADDRESS.CITY_PROVINCE +   
         ADDRESS.STATE_ABBREVIATION + ADDRESS.POSTAL_CODE AS ADDRESS
FROM         
   EMPLOYEE 
INNER JOIN
  ADDRESS ON EMPLOYEE.ADDRESS_ID = ADDRESS.ADDRESS_ID

如果将字符串与空值串联,则结果为空

使用
coalesce
isnull
确保没有空值:

SELECT    
   EMPLOYEE.EMPLOYEE_FNAME + EMPLOYEE.EMPLOYEE_LNAME +    
         EMPLOYEE.EMPLOYEE_PRIMARY_NUMBER + EMPLOYEE.EMPLOYEE_EMAIL AS EMPLOYEE, 
  ADDRESS.ADDRESS_LINE_1 + ADDRESS.ADDRESS_LINE_2 + ADDRESS.CITY_PROVINCE +   
         ADDRESS.STATE_ABBREVIATION + ADDRESS.POSTAL_CODE AS ADDRESS
FROM         
   EMPLOYEE 
INNER JOIN
  ADDRESS ON EMPLOYEE.ADDRESS_ID = ADDRESS.ADDRESS_ID

您需要确保没有数据是空的

ADDRESS.ADDRESS_LINE_1 + COALESCE(ADDRESS.ADDRESS_LINE_2, '')

您需要确保没有数据是空的

ADDRESS.ADDRESS_LINE_1 + COALESCE(ADDRESS.ADDRESS_LINE_2, '')

您可以使用以下命令覆盖空连接的默认选项:

isnull(ADDRESS.ADDRESS_LINE_1, '') 
+ isnull(....

您可以使用以下命令覆盖空连接的默认选项:

isnull(ADDRESS.ADDRESS_LINE_1, '') 
+ isnull(....

如果地址\行\ 1为空怎么办?应该是ISNULL(ADDRESS_LINE_1“”)@roman M:是的,您可以在任何可能为null的字段上使用它。如果ADDRESS_LINE_1为null怎么办?应该是ISNULL(ADDRESS_LINE_1')@roman M:是的,你会在任何可能为null的字段上使用它。这是一个非常糟糕的主意!此功能将从SQL Server的未来版本中删除这是一个非常糟糕的主意!此功能将从SQL Server的未来版本中删除