我正在使用 SQL Server 2014,并且在我的 T-SQL 查詢的 WHERE 子句中遇到以下問題。
我的 WHERE 子句將列出城鎮的名稱。但是,有些名稱中包含諸如撇號之類的字符。示例:ST JULIEN D'HOTMAN
我的 T-SQL 如下所示:
SELECT
...
FROM [TownList]
WHERE [townName] IN
(
...,
...,
'ST JULIEN D'HOTMAN',
...,
)
上述方法不起作用,因為 [townName] 中的一個或多個包含撇號。
從此處給出的解決方案(如何插入包含撇號(單引號)的值?,我需要將該值重寫為 'ST JULIEN D''HOTMAN'
如果您有幾個遵循此原則的名稱,這很好。您可以手動更正值需要寫入的方式。但是,我的串列中有超過 200 到 300 個名字存在這些問題。
是否有解決此問題的替代解決方案?
uj5u.com熱心網友回復:
在過濾資料之前,我會使用表或臨時表來攜帶您的資料
如果您不想修改每一個[townName],還有另一種方法可以嘗試SET QUOTED_IDENTIFIER OFF使用雙引號作為字串識別。
使 SQL Server 遵循有關引號分隔識別符號和文字字串的 ISO 規則。由雙引號分隔的識別符號可以是 Transact-SQL 保留關鍵字,也可以包含 Transact-SQL 識別符號語法規則通常不允許的字符。
SET QUOTED_IDENTIFIER OFF;
SELECT
...
FROM [TownList]
WHERE [townName] IN
(
...,
...,
"ST JULIEN D'HOTMAN",
...,
)
SET QUOTED_IDENTIFIER ON;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457827.html
