У меня есть следующие данные в таблице
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound
В SQL мне нужно написать запрос, который ищет строку в таблице. При поиске строки регистр следует игнорировать. Для указанного ниже SQL-запроса
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%'
дает все вышеперечисленные данные, тогда как
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%'
не дает.
Например. когда я ищу "PriceOrder" или "priceOrder", он работает, но "priceorder" или "Priceorder" не работает. Я попытался выполнить приведенный ниже запрос, используя COLLATE, но он не работает. Дай мне знать, где я ошибаюсь.
SELECT DISTINCT COL_NAME FROM myTable WHERE
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
sql
sql-server
case-insensitive
sql-like
ignore-case
ударноволновая
источник
источник
Ответы:
Используйте что-то вроде этого -
или
источник
UPPER
илиLOWER
регистр, а затем использоватьLIKE
для поиска?См. Этот аналогичный вопрос и ответ на поиск с нечувствительностью к регистру - SQL-сервер игнорирует регистр в выражении where
Попробуйте использовать что-нибудь вроде:
источник
Как это.
В postgresql.
источник
Вероятно, вам следует использовать в
SQL_Latin1_General_Cp1_CI_AS_KI_WI
качестве сортировки. Тот, который вы указываете в своем вопросе, явно чувствителен к регистру.Вы можете увидеть список сопоставлений здесь .
источник