SQL 查找替换字符作为字符串的一部分

Hem*_*San 8 sql t-sql

我需要帮助编写一个查询,该查询将在 SQL 表中找到替换字符

我有多个包含该字符的单元格,我想找到所有这些单元格。单元格的值如下所示:

感谢您的帮助!

Fij*_*jit 9

UNICODE 建议对我不起作用 - ? 字符被视为问号,因此查询将查找所有带有问号的字符串,而不是那些带有 ? 的字符串。

Tom Cooper 在此链接上发布的修复程序对我有用https : //social.msdn.microsoft.com/forums/sqlserver/en-US/2754165e-7ab7-44b0-abb4-3be487710f31/black-diamond-with-question -标记

-- Find rows with the character
Select * From [MyTable]
Where CharIndex(nchar(65533) COLLATE Latin1_General_BIN2, MyColumn) > 0

-- Update rows replacing character with a !
Update [MyTable]
set MyColumn = Replace(MyColumn, nchar(65533) COLLATE Latin1_General_BIN2, '!')
Run Code Online (Sandbox Code Playgroud)


小智 3

使用Unicode函数:

\n\n
DECLARE @TEST TABLE (ID INT, WORDS VARCHAR(10))\n\nINSERT INTO @TEST VALUES (1, \'A\xef\xbf\xbdAA\')\nINSERT INTO @TEST VALUES (2, \'BBB\')\nINSERT INTO @TEST VALUES (3, \'CC\xef\xbf\xbdC\')\nINSERT INTO @TEST VALUES (4, \'DDD\')\n\nSELECT * FROM @TEST WHERE WORDS LIKE \'%\' + NCHAR(UNICODE(\'\xef\xbf\xbd\')) + \'%\'\n\nUPDATE @TEST\nSET WORDS = REPLACE(WORDS, NCHAR(UNICODE(\'\xef\xbf\xbd\')), \'X\')\n\nSELECT * FROM @TEST WHERE WORDS LIKE \'%\' + NCHAR(UNICODE(\'\xef\xbf\xbd\')) + \'%\'\nSELECT * FROM @TEST \n
Run Code Online (Sandbox Code Playgroud)\n