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

热点内容
php上传图片数据库 发布:2025-03-20 20:43:34 浏览:112
电脑弹出脚本 发布:2025-03-20 20:20:54 浏览:475
sdf数据库密码 发布:2025-03-20 20:03:55 浏览:118
戴尔服务器如何开机 发布:2025-03-20 19:58:16 浏览:747
威联通局域网共享ftp 发布:2025-03-20 19:57:39 浏览:114
如何修改服务器编码格式 发布:2025-03-20 19:56:40 浏览:267
java图形界面布局 发布:2025-03-20 19:56:39 浏览:106
java的加载与编译 发布:2025-03-20 19:47:55 浏览:228
c语言回车退出 发布:2025-03-20 19:34:42 浏览:968
好屋源码 发布:2025-03-20 19:24:02 浏览:76