2016-02-23 8 views
-1

我試過將列使用 select(column1 +','+ column2 +','+ column3)作爲column4從表中結合。但是我沒有真正得到三列的結果。它已經爲兩列工作。當我嘗試添加一個它不從表格中檢索任何信息時,請幫助我。將3列或更多的列結合到sql-server中的一個

+0

您是否收到錯誤消息或結果不符合您的期望?請複製並粘貼,不要重新鍵入您的* exact * SQL語句到您的問題中。從上面的內容可以看出,您在'column3'之前缺少'+' –

+0

如果其中一個爲空,則全部爲空。您可以對這些場景使用coalesce。 – Silvermind

+0

除了不處理空值 - 如果您試圖執行的SQL命令包含與問題中包含的片段完全相同的語法,那麼它缺少加號(在最後一個','和第3列之間)。 –

回答

2

如果一個列有NULL作爲值(列1 + '' +列2 + '' +欄3)爲column4,結果將爲空,因此您可以使用coalesce或isnull。 ISNULL函數和COALESCE表達式有類似的用途,但可以有不同的表現。

  • 因爲ISNULL是一個函數,所以它只被計算一次。如上所述,可以多次評估COALESCE表達式的輸入值。

  • 結果表達式的數據類型確定是不同的。 ISNULL使用第一個參數的數據類型,COALESCE遵循CASE表達式規則並返回具有最高優先級的值的數據類型。

  • 對於ISNULL和COALESCE,結果表達式的NULLability是不同的。 ISNULL返回值總是被認爲不可空(假設返回值是不可空的),而具有非空參數的COALESCE被認爲是NULL。所以表達式ISNULL(NULL,1)和COALESCE(NULL,1)儘管等價的具有不同的可空性值。如果您在計算列中使用這些表達式,這會有所不同。

那麼結果會是這樣的:

SELECT isnull(column1, 'abs') + ',' + isnull(column2, 'abc') + ',' + isnull(column3, 'abc') as OneColumnResult from TABLE 

希望它能幫助。

0

你錯過了這段代碼中的最後一個'+'。應該

選擇

驚訝你沒有得到一個錯誤

+0

對不起,這裏+這裏! – GEEK

相關問題