当前位置:首页 » 编程语言 » 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

热点内容
我的世界国际服服务器pvp视频 发布:2025-08-23 05:45:03 浏览:833
androidviewgroup滑动 发布:2025-08-23 05:35:44 浏览:318
什么是自动配置驱动 发布:2025-08-23 05:33:23 浏览:392
c算法教程 发布:2025-08-23 05:17:37 浏览:13
查看数据库的表的内容 发布:2025-08-23 05:12:24 浏览:996
bbs论坛源码java 发布:2025-08-23 04:39:21 浏览:636
如斯脚本 发布:2025-08-23 04:34:52 浏览:593
c语言等腰三角形 发布:2025-08-23 04:31:17 浏览:578
氦气压缩 发布:2025-08-23 04:28:20 浏览:257
android生成随机数 发布:2025-08-23 04:27:36 浏览:752