我的SQL表有像
这样的行Hawaiʻi
01
abcʻdef
ʻabc
abcʻ
所有“撇号”实际上都是okina字符(U + 02BB)
当我使用以下搜索语句时
select text01 from atable where text01 like N'%ʻ%'
我得到了所有返回的行,甚至是“01”
ESCAPE子句(例如LIKE N'%!'%'ESCAPE'!')无效
SQL Server 2005 SP3
有什么想法吗?
答案 0 :(得分:0)
也许尝试CHARINDEX,如下:
DECLARE @FindThis nchar(1)
SET @FindThis = -- err, however you get this particular character into a variable
SELECT text01 from atable where charindex(@FindThis, text01) > 0
答案 1 :(得分:0)
假设你的okina由NCHAR(96)代表(我认为是对的),那么你就有这样的字符串:
select N'Hawai' + nchar(96) + N'i'
然后一个类似的表达式将是:
select case
when ( N'Hawai' + nchar(96) + N'i' ) like ( N'%' + NCHAR(96) + N'%' )
then 'Found okina!'
else 'D''OH!'
end
Mele Kalikimaka ame Hauoli Makahiki Hou!
答案 2 :(得分:0)
这只能在我的测试中获得一个结果(MSSQL的Web浏览器自定义界面,我的Mac上暂时没有企业管理器):
select text01 from atable where text01 like N'%[ʻ]%'
您是否验证过创建SQL语句并传递它的代码是否正确发送了正确的unicode字符?
试试这个:
SELECT UNICODE('ʻ')
或者,它可能是整理问题...整理设置对字符串比较有一些影响。