| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1026 人关注过本帖
标题:请教:SQL语句
取消只看楼主 加入收藏
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
 问题点数:0 回复次数:5 
请教:SQL语句

-- 查询语句,执行没问题。
declare @c varchar(100)
set @c = '1,2,3'
exec('select * from DyStfDir where StfJD in (' + @c + ')')

-- 判断语句,执行也没问题
if exists(select * from DyStfDir where StfJD in (1,2,3))
print 1111
else
print 2222

-- 想将@c放入exists()中就不行了。
declare @c varchar(100)
set @c = '1,2,3'
if exists('select * from DyStfDir where StfJD in (' + @c + ')')
print 1111
else
print 2222

请帮忙,多谢。

搜索更多相关主题的帖子: SQL 语句 print DyStfDir StfJD 
2007-07-13 16:33
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
得分:0 
不行呀,我试过了,提示:

服务器: 消息 245,级别 16,状态 1,行 3
将 varchar 值 '1,2,3' 转换为数据类型为 int 的列时发生语法错误。

2007-07-14 10:09
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
得分:0 
多谢各位,这种方法是行不通的,不过可以使用CHARINDEX()函数。

2007-07-16 09:26
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
得分:0 
探讨问题而已,谁被耍了???
我是没办法才用CHARINDEX()函数的

2007-07-17 11:04
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
得分:0 
问题就在这里,所以我反转过来,将StfJD转换为字符串,再用CHARINDEX()比较,高手吗?

2007-07-18 15:45
Deyee
Rank: 1
等 级:新手上路
威 望:1
帖 子:23
专家分:0
注 册:2007-6-6
收藏
得分:0 

declare @c varchar(100)
set @c = '1,2,3'
if exists(select * from DyDir where charindex(cast(DyJD as varchar),@c)>0)
print 1111
else
print 2222


2007-07-18 15:47
快速回复:请教:SQL语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032858 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved