2016-02-22 7 views
4

код одной из древнееврейских символов, который является точка (= гласный) является 1463 или 0x05b7T-SQL: выберите словами с конкретной Hebrew точки, используя точечный код

Я стараюсь выбирать только слова, которые содержат этот символ , но я получаю весь список слов.

Стараюсь:

DECLARE @d NCHAR 
set @d = NCHAR(1463) 
select * from words where word like '%' + @d + '%' 

Я попытался также

select * from words where word LIKE '%'+NCHAR(0x05B7)+'%' 

Я пытался закончить заявление с

collate hebrew_cs_as 

или

collate hebrew_cs_ai 

и это не работает

PS когда я пытаюсь то же самое с буквенным кодом, как 1488 он работает нормально

например.

select * from words where word LIKE '%'+NCHAR(1488)+'%' 

ответ

3

Вы можете получить правильные результаты, если вы COLLATE источник NVARCHAR в Latin1_General_BIN

DECLARE @t TABLE(txt NVARCHAR(4000)); 
INSERT INTO @t(txt)VALUES 
    (NCHAR(1463)),(N'abcdef'),(N'aiiy'+NCHAR(1463)+N'skj'),(N'sdljsd'),(N'sdjp'+NCHAR(1463)),(N'sdzf'); 
SELECT * FROM @t WHERE txt COLLATE Latin1_General_BIN LIKE N'%'+NCHAR(1463)+N'%'; 

Результат:

enter image description here

+0

здорово! он работает также, когда я использую collate hebrew_bin и без N перед '%' –

+0

@EliCohen Ah да, любая сортировка '* _BIN' будет выполнена. «N» не являются строго необходимыми, если в нем нет символов юникода, но я всегда делаю это для nvarchars. –

 Смежные вопросы

  • Нет связанных вопросов^_^