2013-06-28 52 views
7

我知道AS用於創建別名。因此,將一個長名稱作爲較短名稱是有道理的。但是,我看到SQL查詢NULL as ColumnName 這意味着什麼?SQL:NULL作爲ColumnName暗示什麼

SELECT *, NULL as aColumn 
+0

可以顯示整個查詢或更多的東西......像'選擇「1」 – Sachin

+0

@sac添加查詢,因爲它代表 –

+0

我覺得LittleBobbyTables的答案是正確的,從tablename'編號,這是一個* NULL *對於所有行的列的值... – Sachin

回答

9

別名可以以多種方式使用,而不僅僅是爲了縮短長列名稱。

在這種情況下,您的示例意味着您返回的列始終包含NULL,而其別名/列名稱爲aColumn

當您使用計算值時也可以使用別名,例如Column1 + Column2 AS Column3

+0

我認爲他是對的 – Sachin

+0

我也這麼認爲;)關於*爲什麼*他們寫了這樣的查詢,這是任何人的猜測。在寫完之後,除了返回所有的列以外,它還沒有做任何事情,再加上一個名爲'aColumn'的額外列。沒有看到任何周圍的代碼或業務流程,很難猜測查詢的意圖是什麼。 – LittleBobbyTables

+0

此列的數據類型爲'int' –

0

在聲明結果中,我們有一列包含所有NULL值。我們可以使用別名來引用該列。

在你的情況下,查詢選擇表中的所有記錄,並且每個結果記錄具有僅包含NULL值的附加列。如果我們想在未來的其他地方參考這個結果集和其他列,我們應該使用別名。

1

這意味着"aColumn"只有Null值。此列可以稍後用實際值進行更新,但選中時爲空。

---我不確定你是否瞭解SSIS,但是這種機制對於SSIS向「空」列添加變量值很有用。

+0

只是爲了確定,SSIS意味着:SQL Server Integration Services? –

+1

是的。您發佈的查詢可以用作源表,然後可以使用SSIS中設置的變量爲空列提供值。 – Echo

0

使用SELECT時,您可以直接將值傳遞給列。 因此類似於:

SELECT ID, Name, 'None' AS Hobbies, 0 AS NumberOfPets, NULL AS Picture, '' AS Adress 

是否有效。

當使用UNION/UNION ALL時,它可用於很好地格式化查詢輸出。

0

如何在不使用的作爲 SELECT ID ,名稱 , '無' AS嗜好 ,0 AS NumberOfPets ,NULL圖片

0

一般在的末尾添加NULL作爲[列]名稱基於剛剛選擇的表插入另一個表時,將使用全選。

UPDATE #TempTable SET aColumn = Column1 + Column2 WHERE ... 

然後將結果導出或保存到另一個表中。

0

查詢結果可以包含具有所有NULL值的新列。在SQL Server中,我們可以這樣做:

SELECT *, CAST(NULL AS <data-type>) AS as aColumn 

例如,

SELECT *, CAST(NULL AS BIGINT) AS as aColumn 
相關問題