请看一下这个存储过程有什么问题?在线等待

w68j17 2003-08-30 11:28:20
@DWList varchar(4000) --输入参数 如 '001',‘002’,‘003’

select * from tbname where dm in ( @DWList )

为什么不能返回结果!?
...全文
46 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
w68j17 2003-08-30
  • 打赏
  • 举报
回复
感谢各位!!!我已经解决
我将#tmp改成在存储过程Create table #tmp
然后EXEC('insert into #tmp...')
zclxyh 2003-08-30
  • 打赏
  • 举报
回复
这个是对的
DECLARE @DWList NVARCHAR(400)

SET @DWList ='''001'',''002'',''003'''

select @DWList

EXEC('SELECT * FROM tbname WHERE dm IN ('+@DWList+')')
yujohny 2003-08-30
  • 打赏
  • 举报
回复
DECLARE @Table1 TABLE (a NVARCHAR(4),b INT)
INSERT INTO @Table1 VALUES('0001',1)
INSERT INTO @Table1 VALUES('0002',2)
INSERT INTO @Table1 VALUES('0003',3)

DECLARE @DWList NVARCHAR(400)

SET @DWList ='''0001'',''0002'''

select * from @Table1 where CHARINDEX(','''+a+''',',','+@DWList+',')>0
yujohny 2003-08-30
  • 打赏
  • 举报
回复

DECLARE @Table1 TABLE (a NVARCHAR(4),b INT)

INSERT INTO @Table1 VALUES('0001',1)
INSERT INTO @Table1 VALUES('0002',2)
INSERT INTO @Table1 VALUES('0003',3)

DECLARE @DWList NVARCHAR(400)

SET @DWList ='''0001'',''0002'''

select * from @Table1 where ','+@DWList+',' LIKE '%,'''+a+''',%'
w68j17 2003-08-30
  • 打赏
  • 举报
回复
1,@DWList输入值为'''001'',''002'',''003'''
2,我需要从tb1中筛选数据insert到#tmp中然后对#tmp进行处理
yujohny 2003-08-30
  • 打赏
  • 举报
回复

DECLARE @DWList NVARCHAR(400)

SET @DWList ='''001'',''002'',''003'''

select @DWList

EXEC('SELECT * FROM tbname WHERE dm IN ('+@DWList+')')
w68j17 2003-08-30
  • 打赏
  • 举报
回复
1,Exec('select * from tbname where dm in ( '+@DWList+' )')不可行因为tbname为临时表
我还需要处理。
2,select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0 好像也出不来。
yujohny 2003-08-30
  • 打赏
  • 举报
回复
这样写存储过程
ALTER PROC aa (@DWList NVARCHAR(400))
AS
EXEC('SELECT * FROM dbo.BOM_main WHERE 清单编号 IN ('+@DWList+')')

这样调用过程
EXEC aa '''001'',''002'',''003'''
txlicenhe 2003-08-30
  • 打赏
  • 举报
回复
select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0
pengdali 2003-08-30
  • 打赏
  • 举报
回复
select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0
97866 2003-08-30
  • 打赏
  • 举报
回复
Exec('select * from tbname where dm in ( '+@DWList+' )')

select * from tbname where Charindex(','+dm+',',','+@DWList+',')>0

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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