2015-06-30 5 views
2

Как я буду использовать оператор BETWEEN с текстовым значением или правильный синтаксис, когда вы выберете все продукты с ProductName, например, заканчивая любой буквой BETWEEN 'C' и 'M'?Как использовать оператор BETWEEN с текстовым значением в SQL?

+1

Пожалуйста, помечать свой вопрос с базой данных, которую вы используете. –

+1

Если это будет общий запрос, возможно, стоит изучить, имеет ли ваша система базы данных (например, SQL Server, mysql, Oracle и т. Д.) Функции, которые сделают индекс возможным для этого запроса - например. функциональные индексы или индексированные вычисленные столбцы. Чтобы знать это, нам нужно знать, какую систему вы используете. –

+0

Я пытаюсь закодировать его на генераторе кода w3schools – Ricardo

ответ

5

Большинство диалектов SQL предоставляют функцию RIGHT(). Это позволяет вам:

WHERE RIGHT(TextValue, 1) BETWEEN 'C' AND 'M' 

Если ваша база данных не имеет этой функции, вы можете сделать что-то подобное со встроенными функциями. Кроме того, точное сравнение может зависеть от сопоставления столбца/таблицы/базы данных/сервера. Иногда сравнения не зависят от случая, а иногда они зависят от случая.

+0

Почему произошла ошибка, когда я запускал ее на w3sschools? – Ricardo

+0

Кажется, что это правильно, но он не работает на w3Schools. – Ricardo

+1

Похоже, что w3sschools dbms не поддерживает функцию RIGHT. – jarlh

2

В случае, если вы заинтересованы в альтернативном способе (который делает работу с редактором w3schools SQL), вы можете также использовать LIKE оператор:

WHERE ProductName LIKE '%[c-m]' 

Это поможет вам все названия продуктов, оканчивающиеся на любой символ между с и М. (Это делает работу с редактором w3schools SQL.)

В этом случае оператор LIKE использует два подстановочные знаки:

1.%

Любая строка из ноля или нескольких символов.

2. [с-м]

Любой одиночный символ в пределах указанного диапазона ([а-е]) или установить ([ABCDEF]).

Вы можете найти более подробную информацию о LIKE оператора здесь: https://msdn.microsoft.com/en-us/library/ms179859.aspx

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