字符的问题
我有个字符类型
delcare @x varchar(20)
set @x ='100,200'
但是在in表达式中不行
in (@x)
应该怎样办呢?
问题点数:60、回复次数:11Top
1 楼xuam()回复于 2004-12-03 11:47:23 得分 60
用exec()Top
2 楼Frewin(frewin)回复于 2004-12-03 11:47:52 得分 0
set @x ='100,200' 有问题
可否改成 100200?Top
3 楼pbsql(风云)回复于 2004-12-03 11:53:12 得分 0
要用exec,例:
delcare @x varchar(20)
set @x ='100,200'
exec('select * from t where id in('+@x+')')Top
4 楼xiaomeixiang(小山羊:))回复于 2004-12-03 12:02:56 得分 0
delcare @x varchar(20)
set @x ='''100'',''200''' --@x應該這樣定義
exec('select * from t where id in (' + @x +')')Top
5 楼herofyf()回复于 2004-12-03 12:19:11 得分 0
不能用Exec的因为我的sql语句有into生成临时表的,在外面找不到这个临时表对象的Top
6 楼skyboy0720(曲终人散)回复于 2004-12-03 12:22:35 得分 0
那你就用全局临时表##temptableTop
7 楼yelook(香槟酒)回复于 2004-12-03 12:25:20 得分 0
在外面定义表变量能解决你的问题
declare @temp table (...)
ab
cdTop
8 楼double22822(大无忧-老实和尚(有事发消息))回复于 2004-12-03 12:35:54 得分 0
用charindex() 〉0Top
9 楼zhang_yzy(六子儿)回复于 2004-12-03 12:57:12 得分 0
动态用EXEC执行吧Top
10 楼zhang_yzy(六子儿)回复于 2004-12-03 12:58:44 得分 0
不行就在程序中开事务,将语句都传到服务器上操作应该可以吧Top
11 楼78777675(刀无名)回复于 2004-12-03 13:28:30 得分 0
declare @x varchar(30)
set @x ='''1670734'',''1670734'''
print @x
exec('select * from tablename where fieldName in('+@x+')')Top




