2013-09-22 28 views
0

这是一个问题:从Person表中选择BusinessEntityID,Title,FirstName的第一个字母,MiddleName的第一个字母和Last Name(标签为全名),其中不存在NULL在名字的任何部分。其中<column name>不为空

这是我迄今:

Use AdventureWorks2008R2; 
    Select BusinessEntityID,SUBSTRING(Title,1,3)+' '+SUBSTRING(FirstName,1,1)+' '+ 
    SUBSTRING(MiddleName,1,1)+' '+ LastName as 'Full Name' 
    From Person.Person 
    Where LastName IS NOT NULL; 

然而姓氏列显示NULL值

+2

它们实际上是NULL吗?或者只是一个字符串'“null”或'''' –

+2

它显示NULL值吗?还是显示'''(空字符串)值?这两者非常不同。 – David

+0

你如何确认'姓氏'IS NULL?您没有选择该值。也许它们只是空字符串,与NULL不同。 –

回答

1

如果任何你列连接在一起为NULL,结果将为NULL。您还必须过滤出Title,FirstName和MiddleName。

Use AdventureWorks2008R2; 
SELECT BusinessEntityID,SUBSTRING(Title,1,3)+' '+SUBSTRING(FirstName,1,1)+' '+ 
SUBSTRING(MiddleName,1,1)+' '+ LastName as 'Full Name' 
From Person.Person 
Where LastName IS NOT NULL AND 
     Title IS NOT NULL AND 
     FirstName IS NOT NULL AND 
     MiddleName IS NOT NULL; 
+0

这很有效,谢谢你的帮助,你说的我都没有想到。再次感谢! – necea0612

0

你可以这样做:

Use AdventureWorks2008R2; 
Select BusinessEntityID,SUBSTRING(Title,1,3)+' '+SUBSTRING(FirstName,1,1)+' '+ 
SUBSTRING(MiddleName,1,1)+' '+ LastName as 'Full Name' 
From Person.Person 
Where LastName IS NOT NULL AND LastName != '' 
相关问题