這是我試圖去工作的查詢,但我得到一個語法錯誤。SQL Select value as(Subquery)
SELECT Column1 as (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC)
from Table1
我是自學的,並沒有發現任何明確地說,這不能做,但如果是這樣的話,那麼感謝關閉。
這是我試圖去工作的查詢,但我得到一個語法錯誤。SQL Select value as(Subquery)
SELECT Column1 as (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC)
from Table1
我是自學的,並沒有發現任何明確地說,這不能做,但如果是這樣的話,那麼感謝關閉。
嘗試
SELECT (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC) Column1 from Table1
這沒有多大意義,你實際上沒有選擇'Table1'中的任何東西 – Jamiec
這將顛倒內容及其別名... – CactusCake
問題不在於它是否有意義......這是用戶問題的答案。他必須決定是否有意義。問題 - >回答 – cboden
不能使用從一個別名的子查詢返回的值,也沒有辦法,使這項工作。
您唯一的選擇是動態構建sql,並使用sp_executesql
,但那通常表明其他問題已經出錯!
開始通過獲取你想要的值,幾個百分點的
TOP 1
或適當的過濾條件多個條件與AND
或OR
,不分開逗號
declare @alias NVARCHAR(100) -- whatever is appropriate
SELECT TOP 1 @alias = value2 FROM Table2
WHERE someField = 'some value'
Ť母雞動態建立sql,並執行它。
DECLARE @sql NVARCHAR(100) = 'SELECT Column1 AS ' + @alias + ' FROM Table1'
EXEC sp_executesql @sql
您可以在這裏看到這些內容起作用:http://sqlfiddle.com/#!3/71f8d6/3
但是,我要強調,這是一個不好的解決。
不是愚蠢的,但爲什麼這是壞的?只是想進一步教育自己。 – TechProjCoord
這不是一個愚蠢的問題,但它是一個很長的回答,特別是在評論中。閱讀:http://stackoverflow.com/questions/317725/is-a-dynamic-sql-stored-procedure-a-bad-thing-for-lots-of-records開始 – Jamiec
如果你是一個規範回答,試試這個:http://www.sommarskog.se/dynamic_sql。HTML(警告:長) – Jamiec
問題是:你想要做什麼?請添加您的表格結構,示例數據和預期輸出。 –
只是爲了澄清 - 你是否試圖使用子查詢(來自'Table2.Value2')爲'Table1'中的'Column1'創建一個別名? – Jamiec
如果您想要變量列名稱,您需要動態sql – lad2025