Акцент и без учета регистра COLLATE эквивалент в Oracle - PullRequest
4 голосов
/ 03 февраля 2009

В Microsoft SQL Server, если я хочу выполнять поиск без учета регистра в базе данных с учетом регистра, я могу запустить следующий SQL:

SELECT * FROM MyTable
WHERE MyField = 'BobDillon' COLLATE Latin1_General_CI_AI

И это найдет все записи "bobdillon".

Если я хочу сделать то же самое в Oracle, я знаю, что могу сделать это:

SELECT * FROM MyTable
WHERE UPPER(MyField) = 'BOBDILLON'

Но я хочу знать, существует ли прямой эквивалент ключевому слову collate, поэтому я могу искать чувствительность к регистру и чувствительность к акценту так, как считаю нужным.

1 Ответ

8 голосов
/ 03 февраля 2009
SELECT *
FROM MyTable
WHERE NLSSORT(MyField, 'NLS_SORT = Latin_CI') = NLSSORT('BobDillon', 'NLS_SORT = Latin_CI')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...