2013-11-21 2 views
0

У меня есть запрос, который похож на это:ISNULL выражение показывает ??? -s в результате

SELECT 
    Field.Table1, 
    Field.Table2, 
    ISNULL(Field.Table3, 'My text here') 
FROM Table. 

«Мой текст здесь» находится в грузинском Unicode (который буквально выглядит этот «ვერცხლი»). В результате моего запроса я получаю ??????? -s вместо текста, который я ввел в ISNULL. То же самое происходит, когда я пытаюсь ввести русскую кириллицу как «Мой текст здесь».

Field.Table3 является nvarchar(150), а не null. Он может получить NULL в моем запросе из-за Outer Join, который я использую там (о чем я не упоминал выше).

Может ли кто-нибудь помочь мне с этим?

+0

Какую базу данных вы используете? –

+0

Это проблема с набором символов. Где-то в вашей цепочке отображения кода-> db-> client-> вы используете кодировку differnt, в результате чего содержимое базы данных будет повреждено. В процессе рендеринга chaing необходимо использовать SAME-кодировку повсюду или подключаться к соответствующей логике преобразования. –

+3

Если SQL Server у вас отсутствует префикс 'N'. 'ISNULL (Field.Table3, N 'ვერცხლი')' –

ответ

0

Использование N до определения строки

SELECT 
    Field.Table1, 
    Field.Table2, 
    ISNULL(Field.Table3, N'My text here') 
FROM Table.