SQLSERVER 变量赋值

select*fromtable_awherelogin_idin('aa','bb','cc')我想定义一个变量.给它赋值再查询.如下:declare@login_id... select * from table_a where login_id in ('aa', 'bb', 'cc')

我想定义一个变量. 给它赋值 再查询. 如下:

declare @login_id_csv varchar(50)
set @login_id_csv = ('aa', 'bb', 'cc')
select * from table_a where login_id in ( @login_id_csv )

但是赋值跟查询都有错误.
请叫高手指点. 谢谢.
我用的是SQLSERVER2000
加上引号 set @login_id_csv = ‘('aa', 'bb', 'cc') ’
那么 ( , ) 成为字符串 aa bb cc 成为关键字. 不行的.
所以我试着加了 两个'
set @login_id_csv = ('''aa'', ''bb'', ''cc''')
就连一个结果都没能检索到. 郁闷啊!!
------------
2楼的也不行.
检索出了 login_id为("aa","bb","cc")的1条记录.
不是我想要的多条.
------------
3楼
我写SQL文. 从来不写分号的.
------------
4楼

应该是这样吧?

declare @login_id_csv varchar(50)
set @login_id_csv = '''aa'',''bb'',''cc'''
exec ('select * from table_a where login_id in ( ' + @login_id_csv + ')')

根据你的提示, 终于弄明白了. 谢谢.
展开
 我来答
心灰意冷bjh
2008-05-30 · TA获得超过329个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:245万
展开全部
set @login_id_csv = ('aa', 'bb', 'cc')
试试加上引号
set @login_id_csv = ‘('aa', 'bb', 'cc') ’
还不行的话看看你是什么数据库 有的数据库执行sql需要在后边加分号
http://technet.microsoft.com/zh-cn/ms188927.aspx
还不行的话你可以参考这里 有讲declare的用法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhui5201717
2008-05-30 · TA获得超过275个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:167万
展开全部
declare @login_id_csv varchar(50)
set @login_id_csv = '("aa","bb","cc")'
这样写··没错的··OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weiwei369852
2008-05-30 · TA获得超过420个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:142万
展开全部
sql需要在后边加分号;每个语句后面都要加;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
远一北07
2008-05-31 · 超过87用户采纳过TA的回答
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:122万
展开全部
declare @login_id_csv varchar(50)
set @login_id_csv = '("aa","bb","cc")'

EXEC ('select * from table_a where login_id in ('+@login_id_csv+')'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式