Поиск без учета регистра в Oracle 12g - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть запрос подсчета, который должен подсчитывать общее количество записей, соответствующих отображаемому списку. Я использую like, чтобы отфильтровать запись, сопоставив свободный текст, запись существует в таблице, но все равно, количество запросов равно 0 .

Что я сделал, я ввел текст abc в поле поиска, но внутри таблицы данные хранятся в верхнем регистре i, e ABC .

Я хочу метод поиска без учета регистра.

QUERY:

SELECT
    COUNT(calender_id)
FROM
    calender s
    LEFT JOIN userdetail uu ON update_by = uu.user_id
WHERE
    calender_id = calender_id
     AND LOWER(s.details) LIKE 'Abc%'

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Вы можете попробовать ниже

SELECT
    COUNT(calender_id)
FROM
    calender s
    LEFT JOIN userdetail uu ON update_by = uu.user_id
WHERE
    calender_id = calender_id
     AND LOWER(s.details) LIKE lower('Abc')||'%'
0 голосов
/ 06 ноября 2018

для регистра без учета регистра самый простой способ - использовать нижний или верхний регистр, я думаю, вам следует изменить запрос следующим образом:

SELECT
    COUNT(calender_id)
FROM
    calender s
    LEFT JOIN userdetail uu ON update_by = uu.user_id
WHERE
    calender_id = calender_id
     AND LOWER(s.details) LIKE 'abc%'

или

SELECT
    COUNT(calender_id)
FROM
    calender s
    LEFT JOIN userdetail uu ON update_by = uu.user_id
WHERE
    calender_id = calender_id
     AND UPPER(s.details) LIKE 'ABC%'
0 голосов
/ 06 ноября 2018

Поскольку вы lower используете столбец таблицы, вы должны также использовать строчный литерал:

LOWER(s.details) LIKE 'abc%'
-- Here ---------------^
...