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

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:376
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:941
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371