SQL Server:使用表格變數修正宣告變數的「IN」子句錯誤
SQL Server IN
子句是一個強大的過濾工具。 但是,直接在其中使用聲明的變數通常會導致錯誤:「將varchar 值',' 轉換為資料類型int 時轉換失敗。」發生這種情況是因為變數經常保存逗號分隔的字串,導致資料類型不匹配。
問題場景:
考慮這個程式碼片段:
DECLARE @ExcludedList VARCHAR(MAX) SET @ExcludedList = '3,4,22' SELECT * FROM A WHERE Id NOT IN (@ExcludedList)
結果錯誤:
<code>Error: Conversion failed when converting the varchar value ',' to data type int.</code>
解:表變數
要避免此錯誤,請使用表格變數來儲存值。表變數有幾個優點:
- 它們儲存結構化資料。
- 它們可以動態填充。
- 它們的功能類似於查詢中的常規表。
動態填充表變數:
以下程式碼使用 WHILE
循環動態填充表變量,以處理 @ExcludedList
中的逗號分隔值:
DECLARE @your_list TABLE (list INT) -- Note: Changed to INT to match Id data type DECLARE @Value VARCHAR(25) DECLARE @Pos INT SET @ExcludedList = '3,4,22' -- Example list SET @Pos = CHARINDEX(',', @ExcludedList) WHILE @Pos > 0 BEGIN SET @Value = SUBSTRING(@ExcludedList, 1, @Pos - 1) INSERT INTO @your_list (list) VALUES (@Value) SET @ExcludedList = SUBSTRING(@ExcludedList, @Pos + 1, LEN(@ExcludedList)) SET @Pos = CHARINDEX(',', @ExcludedList) END IF LEN(@ExcludedList) > 0 BEGIN INSERT INTO @your_list (list) VALUES (@ExcludedList) END SELECT * FROM A WHERE Id NOT IN (SELECT list FROM @your_list)
使用方法:
填充表格變數後,在IN
子句中使用它:
SELECT * FROM A WHERE Id NOT IN (SELECT list FROM @your_list)
這可以根據 @your_list
內容有效地過濾行。 此方法避免了資料類型轉換問題,從而支援使用可變數量的逗號分隔值進行動態查詢。 請注意,list
中的 @your_list
欄位應與表格 Id
中 A
欄位的資料類型相符。
以上是表變數如何解決SQL Server宣告變數的「IN」子句錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文介紹了MySQL的“無法打開共享庫”錯誤。 該問題源於MySQL無法找到必要的共享庫(.SO/.DLL文件)。解決方案涉及通過系統軟件包M驗證庫安裝

本文探討了Docker中的優化MySQL內存使用量。 它討論了監視技術(Docker統計,性能架構,外部工具)和配置策略。 其中包括Docker內存限制,交換和cgroups

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

本文比較使用/不使用PhpMyAdmin的Podman容器直接在Linux上安裝MySQL。 它詳細介紹了每種方法的安裝步驟,強調了Podman在孤立,可移植性和可重複性方面的優勢,還

本文提供了SQLite的全面概述,SQLite是一個獨立的,無服務器的關係數據庫。 它詳細介紹了SQLite的優勢(簡單,可移植性,易用性)和缺點(並發限制,可伸縮性挑戰)。 c

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

本指南展示了使用自製在MacOS上安裝和管理多個MySQL版本。 它強調使用自製裝置隔離安裝,以防止衝突。 本文詳細詳細介紹了安裝,起始/停止服務和最佳PRA

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用