sql语句困扰我半天了,高手帮帮忙

dwxqn1010 2010-09-09 02:39:40
declare @val varchar(1000);

select top 1 @val=stuff((select ','+cast(sfjlbh as varchar(10)) from sf_sfjl where jfsj>='2010-11-01' and jfsj<='2010-11-30' for xml path('')), 1, 1, '') from sf_sfjl

上面的sql语句应该是这样的串 @val='1,5,6,7'

但是下面我就要用到@val :

select * from 表 where id in(@val)

重点就在这里:@val 是个字符串 而in()要的是 in(1,5,6,7),这个问题怎么样处理才好? 高手帮帮忙!
...全文
214 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dwxqn1010 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhuangshi 的回复:]
decalare @strSql varchar(8000)
@strSql='select * from 表 where id in('+@val+')'
exec(@strSql)
[/Quote]

表值函数 用不了 exec方法 ,但是还是谢谢你
zhangdoublepan 2010-09-09
  • 打赏
  • 举报
回复
用六楼的方法应该可以的
xyqiqi 2010-09-09
  • 打赏
  • 举报
回复
用六楼的方法应该可以的
tclwlwzz 2010-09-09
  • 打赏
  • 举报
回复
这里不应该用字符串,应该用一个集合。

select * from 表 where id in(select ddt from sf_sfjl where jfsj>='2010-11-01' and jfsj<='2010-11-30')

或者
with abc as
{
select ddt from sf_sfjl where jfsj>='2010-11-01' and jfsj<='2010-11-30'
}


select * from 表 where id in( select ddt from abc)

列的名称相不相同无所谓,关键是类型要对
kkbac 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhuangshi 的回复:]

decalare @strSql varchar(8000)
@strSql='select * from 表 where id in('+@val+')'
exec(@strSql)
[/Quote]

+++
辰爸 2010-09-09
  • 打赏
  • 举报
回复
不管是int 还是varchar 只要将SQL语句拼成select * from 表 where id in (1,5,6,7)这种样式就可以执行成功啊!~
壮士 2010-09-09
  • 打赏
  • 举报
回复
decalare @strSql varchar(8000)
@strSql='select * from 表 where id in('+@val+')'
exec(@strSql)
kkbac 2010-09-09
  • 打赏
  • 举报
回复
修改sql语句.
eg:
select * from 表 where id in(select [id] from 表 where [createtime]<getdate())
dwxqn1010 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dwxqn1010 的回复:]
怎么没人解围!!!自己顶一下
[/Quote]

不是这样的 in() 要的是int
而@val 是字符串
辰爸 2010-09-09
  • 打赏
  • 举报
回复
楼主的意思是多两个单引号吗?使用replace替换掉不就成了
dwxqn1010 2010-09-09
  • 打赏
  • 举报
回复
怎么没人解围!!!自己顶一下
dwxqn1010 2010-09-09
  • 打赏
  • 举报
回复
怎么没人解围!!!自己顶一下

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧