当前位置:首页 » 编程语言 » 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清空控制台 发布:2025-10-16 05:21:37 浏览:252
c语言将数字转换成字符串 发布:2025-10-16 05:10:52 浏览:657
android弹出fragment 发布:2025-10-16 05:10:18 浏览:886
javajdk下载 发布:2025-10-16 05:10:10 浏览:101
e4a加载FTP 发布:2025-10-16 05:08:33 浏览:400
照抄课程编译不通过怎么办 发布:2025-10-16 05:08:00 浏览:911
pubgm密码登录是用什么密码 发布:2025-10-16 04:49:22 浏览:157
xp启动密码怎么取消密码 发布:2025-10-16 04:44:21 浏览:867
linux路径添加 发布:2025-10-16 04:43:00 浏览:39
算法中框框 发布:2025-10-16 04:35:04 浏览:300