我有一個 SQL Server 表,其中有一列型別TEXT可以存盤不同格式的候選人簡歷。RTF 是最常見的一種,但我們經常從 3rd 方轉換器獲取簡歷資料,該轉換器將簡歷存盤為特殊字符(可能是 Unicode 或我不知道它們是什么)。
如何搜索我的表以查找具有這些特殊字符的所有行?例如id = 4,6,7,9等的行都是帶有特殊字符的記錄。
這些特殊字符叫什么格式?統一碼??

uj5u.com熱心網友回復:
假設您所說的“特殊”字符是指可列印 ASCII 和某些常見空白字符集之外的任何內容,您可以嘗試以下操作:
DECLARE @SpecialPattern VARCHAR(100) =
'%[^'
CHAR(9) CHAR(10) CHAR(13) -- tab, CR, LF
CHAR(32) '-' CHAR(126) -- Range from space to last printable ASCII
']%'
SELECT
RESUME_TEXT,
cast(left(cast(resume_text as varchar(max)),20) as varbinary(max))` -- Borrowed from userMT's comment
FROM RESUME
WHERE RESUME_TEXT LIKE @SpecialPattern COLLATE Latin1_General_Bin -- Use exact compare
對于文本中可能存在的一些完全有效的擴展字符,例如重音元音、彎引號或 m 和 n 破折號,您可能會得到一些錯誤命中。
我的第一個問題是奇怪的字符可能是 UTF-8 BOM(十六進制 EF、BB、BF),但顯示似乎與我期望 SQL Server 呈現它們的方式不匹配。默認 Windows 代碼頁 (1252) 中根本不存在反圓點。
我們至少需要一些十六進制資料(至少前幾個位元組)來進一步提供幫助。通常,常見的二進制檔案型別在前 3-5 個位元組中具有可識別的簽名。
uj5u.com熱心網友回復:
請參閱我的文章以查找 SQL Server 中的特殊字符。 https://www.sqlshack.com/manage-unicode-characters-in-data-using-t-sql/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410539.html
標籤:
上一篇:我們如何在特定條件下回圈SQL列
下一篇:使用游標更新不在提要資料中迭代
