SQLSERVER 变量赋值

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:05:47
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

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+')'

set @login_id_csv = ('aa', 'bb', 'cc')
试试加上引号
set @login_id_csv = ‘('aa', 'bb', 'cc') ’
还不行的话看看你是什么数据库 有的数据库执行sql需要在后边加分号
http://technet.microsoft.com/zh-cn/ms188927.aspx
还不行的话你可以参考这里 有讲declare的用法

declare @login_id_csv varchar(50)
set @login_id_csv = '("aa","bb","cc")'
这样写··没错的··OK

sql需要在后边加分号;每个语句后面都要加;