2013-12-11 54 views
0

您是否可以使用case語句動態創建列名稱?比如(從之前的帖子中,我看到的只是你看到的,我確實先看了);選擇CASE和字段名稱

SELECT 
    ProductNumber, Name, 
    CASE 
     WHEN Name = 'Gary' THEN 1 
     ELSE 0 
    End AS ProductNumber + 'Mfg item - not for resale' 
FROM 
    Production.Product; 

我知道這個例子似乎很奇怪,但我有一個項目,我需要包含在轉換爲基於我在CASE語句中使用的標準列列幾條信息。

+6

列名需要是文字,句號。你可以用動態SQL做到這一點,但如果你需要動態列名稱,你做錯了什麼。 – JNK

+1

你爲什麼要標記這個[tag:tsql]和[tag:sas]?這些是彼此不相關的兩種不同的語言。你在做什麼? – Joe

+1

我甚至無法描繪你想要做的事情...假設查詢返回20行,其中10個不能轉售。你如何期望列標題支持? – Tom

回答

1

這是不可能的,因爲在你的理論回答你必須於各行的不同列名。在基於集合的解決方案中,你無法做到這一點。

,如果你在某種爲每個結果集和獨特的表指針基礎的解決方案做到了(如問題的意見被說)如果你這樣做,你正在做的事情錯了動態SQL只會工作。

對於你正在做的任何事情,你可能最好是將所需的列名作爲一個名爲[ColumnName]的列返回,然後在你使用它的任何項目中進行轉換。

+0

感謝球員......這就是我想,但要檢查那些比一,再次感謝更有知識! – Noogin