Как написать запрос в Oracle, игнорируя случай сравнения строк? Например, «ангел», «ангел», «ангел», «ангел», «ангел» будут равны при сравнении.Как сравнить строки в sql, игнорируя регистр?
ответ
Если соответствие полного значения поля используйте
WHERE UPPER(fieldName) = 'ANGEL'
EDIT: Ваш комментарий Вы хотите использовать:
SELECT
RPAD(a.name, 10,'=') "Nombre del Cliente"
, RPAD(b.name, 12,'*') "Nombre del Consumidor"
FROM
s_customer a,
s_region b
WHERE
a.region_id = b.id
AND UPPER(a.name) LIKE '%SPORT%'
хочу, чтобы яг, если ответ Гэри решил вашу проблему, вы должны принять ответ. :-) –
Если таблица клиентов велика, стоит рассмотреть вопрос о добавлении функционального индекса на верхний (имя) для этого типа запроса. –
Вы можете использовать:
select * from your_table where upper(your_column) like '%ANGEL%'
В противном случае вы можете использовать:
select * from your_table where upper(your_column) = 'ANGEL'
Который будет более эффективен, если вы ищете совпадение без дополнительных символов до или после your_column Поле, как предложил Гэри Рэй в своих комментариях.
Согласен. Как самое сжатое. – Daniel
@ PSC - Предложение where будет соответствовать только варианту «ангел» без дополнительных символов до или после того, как оно находится в поле. Если это так, то «=» более эффективно, чем «LIKE». См. Комментарий OP. –
Вы можете использовать ключевое слово UPPER:
SELECT *
FROM Customers
WHERE UPPER(LastName) = UPPER('AnGel')
Я не помню точный синтаксис, но вы можете установить столбец таблицы быть чувствительны к регистру. Но будьте осторожны, потому что тогда вы больше не сможете сравниться по делу, и если вы хотите «здорово» не совпадать с «CoOl», это будет невозможно.
Я не думаю, что можно установить столбец, который не учитывает регистр в Oracle. – tuinstoel
Возможно, я ошибаюсь. Я знаю, что это вариант в mySql –
Подробнее о ответе г-на Дределя и комментариях tuinstoel. Данные в столбце будут сохранены в конкретном случае, но вы можете изменить чувствительность к регистру для соответствия.
Вы можете изменить сеанс или базу данных, чтобы использовать лингвистический или нечувствительный к регистру поиск. Вы также можете настроить индексы для использования определенных заказов сортировки.
например
ALTER SESSION SET NLS_SORT=BINARY_CI;
После того, как вы начнете получать в неанглийские языках, с акцентами и так далее, есть дополнительная поддержка для акцента регистронезависимого. Некоторые возможности зависят от версии, поэтому ознакомьтесь с документом Globablization для вашей конкретной версии Oracle. Последний (11g) является here
перед сравнением двух или более строк, сначала необходимо выполнить следующие команды
alter session set NLS_COMP=LINGUISTIC;
alter session set NLS_SORT=BINARY_CI;
после этих двух операторов, выполняемых тогда вы можете сравнить строки и будет случай insensitive.for примера у вас были две строки s1 = «Apple» и s2 = «apple», если вам нужно сравнить две строки перед выполнением вышеуказанных утверждений, тогда эти две строки будут обрабатываться как две разные строки, но когда вы сравните строки после выполнения два этих утверждения, то эти две строки s1 и s2 будут рассматриваться как одна и та же строка
причины для использования этих двух заявлений
Нам нужно установить NLS_COMP = лингвистический и NLS_SORT = BINARY_CI для того, чтобы использовать 10gR2 случай нечувствительность. Поскольку они являются модифицируемыми сеансом, это не так просто, как устанавливать их в параметрах инициализации.Мы можем установить их в параметрах инициализации, но они влияют только на сервер, а не на клиентскую сторону.
- 1. Сравнить строку с групповым символом - игнорируя регистр
- 2. Как сравнить строки в MyBatis 3 в XML <if test> игнорируя регистр
- 3. LFTP MGET игнорируя регистр
- 4. Как создать хэш в Ruby, который сравнивает строки, игнорируя регистр?
- 5. Haxe - сравнить две строки игнорируя случай?
- 6. Сравнить две строки XML игнорируя порядок элементов
- 7. Лучший способ сравнить две строки, игнорируя случай
- 8. javascript: игнорируя регистр чувствительности строк
- 9. Как сравнить HTML, игнорируя пробелы?
- 10. Сравнить регистр символов строки, то рассчитывать дубликаты
- 11. Как сравнить две строки и игнорируя специальный символ в C#
- 12. Как сравнить строки в javascript, игнорируя специальные символы
- 13. Сравните две строки для равенства, игнорируя регистр в XSLT 1.0
- 14. Как я могу сравнить VARCHAR в SQL Server, игнорируя тильды
- 15. Как совместить элемент по тексту, игнорируя регистр?
- 16. Сопоставьте последовательные повторяющиеся символы, игнорируя регистр
- 17. C# имя разрешения в редакторе, игнорируя регистр
- 18. Java заменяет последовательности строк, игнорируя регистр?
- 19. ORACLE SQL: Заменить часть текстового поля, игнорируя регистр
- 20. Как сравнить две строки, игнорируя случай на языке Swift?
- 21. C++ Как сравнить строки с указателями, игнорируя пробелы?
- 22. сравнить строки после преобразования в нижний регистр в c
- 23. SQL сравнить целые строки
- 24. Как сравнить строки с разными кодировками в SQL Server
- 25. Я хочу сравнить объект arrayList со строкой, игнорируя регистр. Как я могу это сделать?
- 26. Как сравнить 2 изображения, игнорируя области
- 27. C# игнорируя регистр букв для если заявление
- 28. Entity framework, проверьте дубликаты, игнорируя регистр
- 29. Как сравнить две строки в SQL Server
- 30. Как слить/сравнить файлы, игнорируя порядок?
выберите RPAD (a.name, 10, '=') "Номбр дель Cliente", RPAD (b.name, 12, '*') "Номбр дель Consumidor" от s_customer а, б S_region , где в .region_id = b.id И a.name LIKE '% sport%' Спорт - это то слово, которое мне нужно – 2009-05-16 03:17:42