我的查询如下:
declare @aID varchar(max)='1'
declare @pID varchar(max)=' '
SELECT * from Table1 WHERE
(PId = @PID or @pID='') AND (AID = @aID or @aID = '')
此查询正常。 但是现在,我想使用'IN'条款。
declare @aID varchar(max)='1,2'
SELECT * from Table1 WHERE
(PId = @PID or @pID='') AND (AID IN (@aID) or @aID = '')
但是这最后一个查询给了我一个错误。
Error : 'Conversion failed when converting the varchar value '1,2' to data type int'
我不想改变我的Table1的设计
我怎样才能做到这一点?
答案 0 :(得分:1)
@vars
作为单个“块”插入。确定它实际上是多个单独的逗号分隔值不是数据库的工作。
如果您希望将1,2
视为两个值,则必须使用动态sql,例如
query = "SELECT ... IN (" + @var + ")";
exec query;
答案 1 :(得分:0)
您可能希望使用表变量,而不是尝试使用逗号稀释值。
echo 1 > working.txt
如果你真的想保留逗号分隔值,你也可以使用split function
/var/www/laravel/public/js/main.js IN_MODIFY yui-compressor -o /var/www/laravel/public/js/main.min.js /var/www/laravel/public/js/main.js