当前位置:首页 » 编程语言 » sqlserverin字符串

sqlserverin字符串

发布时间: 2024-10-12 10:57:33

sqlserver数据库,批量更新用in不生效。

这跟你的存储过程有关,明显是传进去的id值拼接成了一个字符串,存储过程没处理,导致存储过程真正执行的sql是这样的↓
select * from tb where id in('1002,5008')
看到没,数据库就认为'1002,5008'这个是一个单独的id

把存储过程的sql打印出来看下你就清楚了。

Ⅱ sqlserver select a from b where a in (X)

1、先说先面的为什么不行:
前面的IN函数的参数是一个结果集,而的结果集是一个经过修改的长字串,不是多个记录的集合。

2、再说后面的:
BB字段应该是类似'2012019339'这样的短数据。所以不可有一个与你得到的长字串一样。
而后面的是一个以逗号分隔的字串集合,只要BB是其中一个字串,就符合查询条件。

3、解决方法:
你应该是想用这样的方式代替一个长长的查询语句:
select * from aa where bb in (@3)
用后面的几行语句替换你的这一行:
select * from aa where bb in (
select RTrim( ''''+REPLACE ( SUBSTRING (@3 , 1 , LEN(@3)), ',' ,''',''')+'''' ))
即可:
declare @sqlstr Nvarchar(1000)
set @3= RTrim( ''''+REPLACE ( SUBSTRING (@3 , 1 , LEN(@3)), ',' ,''',''')+'''' )

set @sqlstr=N'select * from aa where bb in('+@3+')'

exec sp_executesql @sqlstr

Ⅲ SQLSERVER璇鍙 in鍜宔xists鍝涓鏁堢巼楂樻湰浜烘祴璇曡瘉鏄

鐩稿悓搴撶粨鏋勪笅锛屽緢鏄庢樉 Exists鏁堢巼楂
in 鍦ㄥ瓧绗︿覆涓嬬殑鏁堢巼鏄寰堜绠镄勶纴涓昏佸师锲犳槸绱㈠紩
濡傛灉鏄疘NT鍨嬶纴链夌储寮旷殑𨱍呭喌锛屽熀链涓婃病澶澶у尯鍒
娌℃湁澶澶ф暟鎹镄勬儏鍐碉纴锘烘湰涓娄笉鐢ㄧ籂缁撹繖浜涗笢瑗

Ⅳ sqlserver 怎么实现 (A,B) NOT IN (SELECT A,B FROM *****)

换一个思路,你的查询条件可以如下描述
你要实现查询结果的数据(表 tab )在 A,B 字段的值另一表(表subtab)中不存在

根据 表 tab 中的A,B字段值在 subtab中无法查询到数据。
实现语句如下
not exists (SELECT * FROM subtab where subtab.A= tab.A and subtab.B= tab.B)

这种写法在orcle中效率要高于 not in

Ⅳ SQLSERVER 2005数据库 IN 操作符 的问题

需粗慧要辅助表

select a.Functionary,isnull(sum(MoneyReceipt),0) as TotalReceipt
from
(select Functionary='111' union all
select '2222' union all
select '3333'并乱union all
select '44444'岩蔽答) a
left join PE_Orders b on a.Functionary=b.Functionary
group by a.functionary

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:563
制作脚本网站 发布:2025-10-20 08:17:34 浏览:852
python中的init方法 发布:2025-10-20 08:17:33 浏览:552
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:731
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:653
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:971
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:225
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:84
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:774
python股票数据获取 发布:2025-10-20 07:39:44 浏览:680