Выбор диапазонов unicode в sql

Я пытаюсь выбрать диапазон символов Юникода из столбца. Допустим, я пытаюсь выбрать один из диапазонов ниже. Возможно ли это в SQL, используя что-то вроде:

SELECT * FROM table1
WHERE col1 LIKE UNICODE(3000 - 303f)

Знаки препинания в японском стиле (3000–303f)

Хирагана (3040–309f)

Катакана (30a0 - 30ff)

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

Если нужна дополнительная информация, спрашивайте.

Что вы пытаетесь определить? Содержит ли он какой-либо символ в этом диапазоне? Что он содержит только символы из этого диапазона? Что-то другое? Похоже на то, что легче проверить с помощью регулярных выражений, но поскольку SQL Server по-прежнему не предоставляет регулярное выражение непосредственно в T-SQL, маловероятно, что для этого существует поддержка.

Damien_The_Unbeliever 10.09.2018 10:24

Я ищу столбец, который «должен» содержать только один диапазон Unicode, но на самом деле содержит другие диапазоны, а также числа и английские символы. Поэтому вместо того, чтобы кодировать каждый символ, мне было интересно, есть ли другой способ сделать это. Я знаю, что это не так.

JimmyPop13 10.09.2018 10:27
2
2
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать функции unicode() или nchar():

SELECT *
FROM table1
WHERE UNICODE(LEFT(col1, 1)) BETWEEN 0x3000 AND 0x303F

Если не ошибаюсь, это будет сравнение только первого символа. Основываясь на комментарии OP к вопросу, кажется, что они хотят проверить, что все символы в столбце принадлежат определенному диапазону.

Nisarg 10.09.2018 10:46

Это то, что делает «1»? Просто проверяет первый символ? Если честно, это действительно помогает вернуть нужные мне результаты. Спасибо.

JimmyPop13 10.09.2018 10:51

@ JimmyPop13. . . Да, это просто проверяет первый символ.

Gordon Linoff 10.09.2018 11:03

Другие вопросы по теме