Sql Server:隔离特定字符

时间:2011-05-04 14:51:27

标签: sql-server character

我正在运行SQL Server 2008 R2。有许多记录在特定列中具有这种时髦的 字符。我想只隔离那些记录并对它们执行Replace()。我遇到的问题是当我运行此查询时:

select * from stories where body like '%�%' and publishdate = 20110131

它将返回 不在body列中的故事。在我检查过的每一个案例中都有正常情况? body列内容中的字符。所以似乎'% %'与两者相匹配?和 。我可以做任何Cast或Convert魔法来返回实际上具有 字符的记录吗?

1 个答案:

答案 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