2013-09-22 33 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 != '' 
相關問題