我正在运行SQL Server 2008 R2。有许多记录在特定列中具有这种时髦的 字符。我想只隔离那些记录并对它们执行Replace()。我遇到的问题是当我运行此查询时:
select * from stories where body like '%�%' and publishdate = 20110131
它将返回 不在body列中的故事。在我检查过的每一个案例中都有正常情况? body列内容中的字符。所以似乎'% %'与两者相匹配?和 。我可以做任何Cast或Convert魔法来返回实际上具有 字符的记录吗?
答案 0 :(得分:1)
N
前缀和二进制COLLATE
子句是否可以完成这项工作?
CREATE TABLE #stories
(
body nvarchar(100)
)
INSERT INTO #stories
SELECT N'normal ? char' UNION ALL SELECT N'funky � char'
SELECT *
FROM #stories
WHERE body like '%�%'
SELECT *
FROM #stories
WHERE body like N'%�%' COLLATE Latin1_General_BIN2
DROP TABLE #stories