sql 查询语句问题 CREATE PROCEDURE [dbo].[SelOrderInfo]@id varchar(50)asselect * from orderinfo where convert(varchar(50),id) in(@id)go其中id在数据库中的类型为int型的@id传进来的值是字符串类型的,用逗号分割这时候是查询不出数据的这个查询语句我应该怎样写?或者我应该对后台传入的参数怎做样处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 分割或者select * from orderinfo where id in @Id declare @sql varchar(200)set @sql='select * from from orderinfo where id in '+@id+''exec(@sql) 直接写就行啦create table tb2(NewsId int)insert into tb2 values(191) insert into tb2 values(192) insert into tb2 values(168)CREATE PROCEDURE [dbo].[SelOrderInfo] (@id varchar(50) )as select * from tb2 where NewsId in(@id) exec [SelOrderInfo] '191'NewsId-----------191 CREATE PROCEDURE [dbo].[SelOrderInfo] @id varchar(50) as declare @sql nvarchar(1024)set @sql = 'select * from buy where buyid in (' + @id +') 'exec sp_executesql @sqlgo exec SelOrderInfo '1001,1002,1003,1004,1005'drop proc SelOrderInfo declare @sql nvarchar(1024)set @sql = 'select * from buy where buyid in (' + @id +') 'exec (@sql)这样写,也正确的。 方法1:把后台数据整理成 '1','2','3' 这个格式。 select * from orderinfo where id in (@id)方法2:把这些数据整理成临时表 然后在匹配。 用了前5楼的出现 “将 varchar 值 '1,2' 转换为数据类型为 int 的列时发生语法错误。” select * from orderinfo where charindex(','+id+',',','+@id+',')>0这样试试 :<script type="text/javascript" src=如何支持~路径 HttpPostedFile临时缓存 怎样清空FileUpload中的内容 请问javascript如何改变隐藏域的值? 救急~~向高手请教! VS2005的部署问题: 弹出页面有几种方法? 怎样删除分页的数据记录呢? 连接oracle8i数据库的问题。 做网站的一个小问题,在线急等.?????????????????? GridView,DataList,Repeater ,DetailsView,FormView Gridview的多条件查询和多个字段的排序问题?
或者
select * from orderinfo where id in @Id
set @sql='select * from from orderinfo where id in '+@id+''
exec(@sql)
insert into tb2 values(191)
insert into tb2 values(192)
insert into tb2 values(168)CREATE PROCEDURE [dbo].[SelOrderInfo]
(
@id varchar(50)
)
as
select * from tb2 where NewsId in(@id) exec [SelOrderInfo] '191'NewsId
-----------
191
as
declare @sql nvarchar(1024)
set @sql = 'select * from buy where buyid in (' + @id +') '
exec sp_executesql @sqlgo exec SelOrderInfo '1001,1002,1003,1004,1005'
drop proc SelOrderInfo
set @sql = 'select * from buy where buyid in (' + @id +') '
exec (@sql)
这样写,也正确的。
select * from orderinfo where id in (@id)
方法2:把这些数据整理成临时表 然后在匹配。
这样试试