簡體   English   中英

使用where子句查詢具有多個值的變量

[英]Query with where clause checking a variable with multiple values

場景:我正在嘗試創建一個查詢,我想從一個表中檢索多個值。 通過直接列出值來做到這一點很簡單,就像這樣:

select * from product.text_data
where text_data.field_label = "Owner" or text_data.field_label = "Admin" or text_data.field_label = "Rule";

問題:是否可以執行相同的查詢,但是可以將字段列表輸入變量中,然后直接檢查變量?

例如:

set @idlist1 = ("Owner", "Admin", "Rule");
select * from product.text_data
where product.text_data.field_ref in @idlist1;

問題:如果我嘗試運行此程序,則會得到

SQL Error (1241): Operand should contain 1 column(s)

無法將列表定義為變量。 您將必須將變量聲明為臨時表。

在您的用例中,您似乎正在尋找動態sql。

declare @myList varchar(100)
set @myList = '( "Owner", "Admin", "Rule" )'
exec('SELECT * FROM product.text_data WHERE product.text_data.field_ref IN' + @myList)

您缺少兩個括號中的''()

變量應像這樣設置-

set @idlist1 = '("Owner","Admin","Rule")'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM