我想设置的时候写的陈述RECEIPTIDS
变量,这样我就可以在格式传递多个值到我的查询。 我曾尝试以下:
DECLARE @RECEIPTIDS VARCHAR(2000)
SET @RECEIPTIDS = ('R00013','R00028')
但是,我得到的错误:
不正确的语法附近“”。
我想设置的时候写的陈述RECEIPTIDS
变量,这样我就可以在格式传递多个值到我的查询。 我曾尝试以下:
DECLARE @RECEIPTIDS VARCHAR(2000)
SET @RECEIPTIDS = ('R00013','R00028')
但是,我得到的错误:
不正确的语法附近“”。
你需要额外的单qoutes。
create table MyTable
(
ID varchar(50)
)
insert into MyTable values('R00013')
insert into MyTable values('R00028')
insert into MyTable values('R00015')
DECLARE @RECEIPTIDS VARCHAR(2000)
SET @RECEIPTIDS = ('''R00013'',''R00028''')
DECLARE @QUERY VARCHAR(100)
SET @QUERY='SELECT *
from MyTable
where ID IN ('+@RECEIPTIDS+')'
EXEC (@QUERY)
编辑:使用动态查询中使用它。
使用临时数组或临时列表
DECLARE @ListofIDs TABLE(IDs VARCHAR(100))
INSERT INTO @ListofIDs VALUES('a'),('10'),('20'),('c'),('30'),('d')
SELECT IDs FROM @ListofIDs;
你需要表变量或临时表 。
DECLARE @RECEIPTIDS TABLE(val VARCHAR(100))
Insert into @RECEIPTIDS values ('R00013'), ('R00028')
您可以在使用它作为
where field IN (Select val from @RECEIPTIDS)
没有为我工作,要么但这并:
DECLARE @RECEIPTIDS TABLE(val VARCHAR(100))
Insert into @RECEIPTIDS values ('R00013'), ('R00028')
where field IN (Select val from @RECEIPTIDS)