我正在尝试在SEDE上写一个查询,在帖子的标题中查找某些重音字符 - 如下所示:
SELECT
b.Id AS [Post Link]
FROM
Posts b
WHERE
b.Title LIKE '%[ĀāĒēĪīŌōŪūÂâÊêÎîÔôÛû]%'
不幸的是,这会返回标题中包含元音的任何帖子,无论是否有重音,我们可以通过运行看到:
SELECT
CASE
WHEN 'tuv' LIKE '%[ĀāĒēĪīŌōŪūÂâÊêÎîÔôÛû]%'
THEN 'matched'
ELSE 'not matched'
END
会导致返回'matched'
。
如何执行仅选择Title
包含我指定的重音字符的行的查询?从我对SQL的模糊理解,我一直认为这可能需要以某种方式使用COLLATE
。 (请注意,在这种情况下我无法控制数据库,因此我无法更改表或数据库级别的任何设置或任何内容 - 我必须使用SEDE已经提供的内容。)
答案 0 :(得分:4)
您唯一缺少的是N
前缀。使用unicode字符时,您总是需要通过在字符串前加N
SELECT
b.Id AS [Post Link]
FROM
Posts b
WHERE
b.Title LIKE N'%[ĀāĒēĪīŌōŪūÂâÊêÎîÔôÛû]%'
插入,更新数据时也是如此
INSERT INTO TableName(ColumName)
VALUES (N'ĀāĒēĪīŌōŪūÂâÊêÎîÔô')