當前位置:首頁 » 編程語言 » 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:11:59 瀏覽:781
編程折半法 發布:2024-10-12 13:11:59 瀏覽:753
c語言strlen函數 發布:2024-10-12 13:07:31 瀏覽:570
客戶端數據存儲復習資料 發布:2024-10-12 12:57:38 瀏覽:908
python字元串下標 發布:2024-10-12 12:52:53 瀏覽:623
如何更改設置路由器用戶和密碼 發布: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
壓縮臨時文件 發布:2024-10-12 12:14:04 瀏覽:62