目前,如果我要重命名的列名別的東西,我會做如何在SQL顯示,而不硬編碼命名的列名
Select column as "what I want to name it"
from table1
不過,我不想硬編碼列名所以我試圖設置一個變量
set @var = "some name"
select column as @var
from table1
但這是給我的語法錯誤,我做錯了什麼?所有幫助表示感謝,謝謝。
目前,如果我要重命名的列名別的東西,我會做如何在SQL顯示,而不硬編碼命名的列名
Select column as "what I want to name it"
from table1
不過,我不想硬編碼列名所以我試圖設置一個變量
set @var = "some name"
select column as @var
from table1
但這是給我的語法錯誤,我做錯了什麼?所有幫助表示感謝,謝謝。
SQL處理器不會那樣工作。變量評估發生在表達式中;它不能用於構造輸出。
如果您真的需要,您可以使用動態SQL,但這就像使用生鏽的電鋸殺死蒼蠅,而電鋸沒有防護。最好不要在SQL中這樣做。
由於@juergend在註釋中說,動態SQL的形式取決於你使用的SQL引擎:甲骨文,SQL服務器,MySQL等
這裏如何使用動態SQL
SQL服務器DECLARE @columnName VARCHAR(10)
DECLARE @sql VARCHAR(100)
SET @columnName = 'Column1'
SET @sql = 'SELECT 1 AS ' + @columnName
EXEC (@sql)
您需要動態SQL。如何做到這一點很大程度上取決於您使用的數據庫引擎。 –
爲什麼你不希望列被硬編碼? – CathalMF