當前位置:首頁 » 編程語言 » 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

熱點內容
svn存儲伺服器 發布:2024-11-24 09:22:36 瀏覽:410
linux的硬碟格式 發布:2024-11-24 09:22:35 瀏覽:320
啟動ftp的命令是 發布:2024-11-24 09:12:33 瀏覽:601
腳本爬取數據 發布:2024-11-24 09:11:50 瀏覽:273
加密機制協議的是 發布:2024-11-24 09:11:47 瀏覽:826
易語言靜態編譯dll 發布:2024-11-24 09:11:43 瀏覽:583
cf游戲里最低配置怎麼調 發布:2024-11-24 09:02:51 瀏覽:81
java排序演算法效率 發布:2024-11-24 08:59:06 瀏覽:145
安卓vivo藍牙耳機掉了一隻怎麼找 發布:2024-11-24 08:45:28 瀏覽:847
加油站腳本 發布:2024-11-24 08:44:02 瀏覽:434