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

热点内容
两个服务器分别是什么意思 发布:2024-10-12 13:27:37 浏览:858
我的世界宝可梦服务器电脑和手机可以联机 发布:2024-10-12 13:11:59 浏览:781
编程折半法 发布:2024-10-12 13:11:59 浏览:753
c语言strlen函数 发布:2024-10-12 13:07:31 浏览:571
客户端数据存储复习资料 发布:2024-10-12 12:57:38 浏览:908
python字符串下标 发布:2024-10-12 12:52:53 浏览:624
如何更改设置路由器用户和密码 发布:2024-10-12 12:41:08 浏览:438
什么手机的配置高 发布:2024-10-12 12:36:24 浏览:958
fc加密数字资产 发布:2024-10-12 12:19:12 浏览:462
大王卡可以缓存视频吗 发布:2024-10-12 12:14:52 浏览:660