Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Интересный и непонятный результат запроса / 6 сообщений из 6, страница 1 из 1
06.10.2018, 08:44
    #39713853
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
Запрос

Код: plsql
1.
SELECT 1  where (SUBSTRING(N'ңғ', 1, 1)) LIKE '[A-Z, a-z,А-Я, Ё, а-п, р-я, ё, ., -, , 0-9, "]%'



возвращает 1, а как сделать чтобы всё же правильно отрабатывал и возвращал пустоту.
...
Рейтинг: 0 / 0
06.10.2018, 10:47
    #39713871
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
roma1975как сделать чтобы всё же правильно отрабатывал и возвращал пустоту.1. Ознакомиться в документации с синтаксисом шаблонов в LIKE, а не придумывать свой собственный.
2. Ознакомившись, понять что проблема из-за выделенного фрагмента:
Код: sql
1.
SELECT 1  where (SUBSTRING(N'ңғ', 1, 1)) LIKE '[A-Z, a-z,А-Я, Ё, а-п, р-я, ё, ., -, , 0-9, "]%'
...
Рейтинг: 0 / 0
06.10.2018, 11:07
    #39713873
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
Запрос отрабатывает правильно. Достаточно упростить его и становится все понятно:

SELECT '&' where '&' LIKE '[ -,]'
...
Рейтинг: 0 / 0
08.10.2018, 05:56
    #39714180
roma1975
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
Здравствуйте.

Вообще я пытаюсь отловить отсутствие казахских букв в строке в запросе, там в запросе казахская н с хвостиком и г с чёрточкой просто так запрос интересно перевёлся на форуме. Так вот, что-то запросом он не отлавливает их отсутствие. И как правильно сделать, чтобы он их поймал отсутствие казахских букв?
...
Рейтинг: 0 / 0
08.10.2018, 21:29
    #39714682
Владимир Затуливетер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
в like строка наверное тоже юникодная должна быть, т.е. с буквой N.
Попробуйте.
Код: sql
1.
SELECT 1  where (SUBSTRING(N'ңғ', 1, 1)) LIKE N'[A-Z, a-z,А-Я, Ё, а-п, р-я, ё, ., -, , 0-9, "]%'
...
Рейтинг: 0 / 0
09.10.2018, 00:03
    #39714715
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересный и непонятный результат запроса
Владимир Затуливетерв like строка наверное тоже юникодная должна быть, т.е. с буквой N.
Попробуйте.
Код: sql
1.
SELECT 1  where (SUBSTRING(N'ңғ', 1, 1)) LIKE N'[A-Z, a-z,А-Я, Ё, а-п, р-я, ё, ., -, , 0-9, "]%'

Во-первых, результат SUBSTRINGа, как уже указали, - символ N'&'.
Во-вторых, зачем в LIKE столько запятых, если достаточно одной, а в данном случае они вообще не нужны?
В-третьих, какой смысл символа '-' между пробелом и запятой? Имелся в виду именно этот символ? Тогда его надо написать в квадратных скобках ('[-]'). Иначе прочитать документацию, как здесь тоже советовали.
В-четвёртых, как оказалось, вопрос вообще связан с казахским алфавитом. Может, заодно и про COLLATE почитать надо?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Интересный и непонятный результат запроса / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]