我如何將選擇列存儲在變量中?我如何將選擇列存儲在變量中?
試試這個,但我扔一個錯誤的語法不正確
declare @EmpId int
SELECT dbo.Employee.Id as @EmpId FROM dbo.Employee
我如何將選擇列存儲在變量中?我如何將選擇列存儲在變量中?
試試這個,但我扔一個錯誤的語法不正確
declare @EmpId int
SELECT dbo.Employee.Id as @EmpId FROM dbo.Employee
select @EmpID = ID from dbo.Employee
或者
集@EmpID =(從dbo.Employee選擇ID)
注意選擇查詢可能會返回多個值或多個行。因此您可以編寫一個必須返回一行的選擇查詢。
如果你想添加更多的列到一個變量(MS SQL),還有就是用定義表變量
DECLARE @sampleTable TABLE(column1 type1)
INSERT INTO @sampleTable
SELECT columnsNumberEqualInsampleTable FROM .. WHERE ..
由於表類型變量不甲骨文等公司存在的一個選項,你必須定義它:
DECLARE TYPE type_name IS TABLE OF (column_type | variable%TYPE | table.column%TYPE [NOT NULL] INDEX BY BINARY INTEGER;
- 然後宣佈這種類型的表變量:variable_name type_name;
- 將值分配給TABLE變量:variable_name(n).field_name := 'some text'
;
- 其中「n」是指數值
消息141,級別15,狀態1,行19 將值賦給變量的SELECT語句不能與數據檢索操作結合使用。 – 2011-02-25 18:01:03
@Abu - 您需要將選擇列表中的所有**列分配給變量。您不能將正常的選擇與返回結果的客戶端分配給變量。不過,你可以明顯地在'SELECT @ var1作爲somecol,@ var2作爲anothercol'。 – 2011-02-25 18:06:45
你可以這樣做,選擇五列,但只有一個放入臨時變量? – Casey 2017-12-22 14:41:10
這是如何將一個值分配給一個變量:
SELECT @EmpID = Id
FROM dbo.Employee
然而,上面的查詢將返回一個以上的值。您需要添加WHERE
子句才能返回單個Id
值。
假設這樣的查詢將返回單行,你可以使用任何
select @EmpId = Id from dbo.Employee
或者
set @EmpId = (select Id from dbo.Employee)
如果我有多個單行,該怎麼辦?你將如何處理 – 2011-02-25 18:01:45
@Abu Hamzah:你不能。一個變量只能保存一個值。如果查詢返回多行,您希望將哪個值放入變量中? – 2011-02-25 18:02:46
在我的情況我有2列名稱,我應該持有1)EmpId,2)RegId - 它可能有多個行或只有一行,我在一個變量與其他人比較...不知道這是否是正確的做法。 – 2011-02-25 18:08:19
如果其他的答案是沒有幫助,因爲要處理多個行,這將有助於瞭解你想用EmpIds做什麼。 – Xoltar 2011-02-26 08:52:43