2014-03-05 33 views
2

使用SQL server 2008 R2地串聯SQL領域,其中NULL不存在

我試圖讀取所有其他相關的帖子,但沒有看到任何匹配什麼,我試圖做的。

我有兩列Phone1和Phone1Ext`

我只是想在123-456-7890 x1234格式來連接這些列爲Phone

我可以做

Select phone1 + ' x' + phone1ext AS Phone from table 

並得到結果時Phone1Ext不爲空,我需要。但如果是NULL我得到

123-456-7890 x 

如果phone1爲NULL,則我剛得到一個x

是基於上面貼的SQL行所有預期。

我基本上不想來連接PHONE1和phone1ext如果phone1ext爲NULL。我已經試過的ISNULLCOALESCE各種用途,但還沒有任何運氣。

回答

1

如果你只有phone1你會得到它,如果兩個都是null你會得到空字符串。

Select phone1 + ISNULL(' x' + phone1ext, '') AS Phone from table 
0

很簡單:

select 
case when ph2 is not null 
then ph1 + 'x' + ph2 
else ph1 
end 
from 
ph 

SQL Fiddle

0

感謝你們倆您的答覆。在發佈之前,我已經嘗試了類似的解決方案來解答你的兩個問題,但總是去不需要的x。然後我頓悟了一下。我連接的數據從另一個系統加載。在仔細觀察後,輸入的數據不是NULL值,而是一個「或」一系列空白。因此,他們從來沒有NULL!我很抱歉浪費你的時間,但是想要發佈這個以防其他人跑過類似的結果。這是我用來解決它在我的情況:

選擇 CASE當LEN(phone1ext) THEN電話1 ELSE電話1 + 'X' + phone1ext END AS電話 FROM

再次感謝。