Oracle SQL LIKE Query

sql oracle

2228 просмотра

3 ответа

Я новичок в StackOverflow и относительно новичок в ИТ, просто изучая веревки SQL. Пожалуйста, прости меня, если я разместил это в неправильном месте или задал глупый вопрос.

Надеюсь получить некоторую помощь по следующей проблеме:

У меня есть база данных Oracle (для доступа к ней используется Oracle SQL Developer).

Я пытаюсь выполнить команду и не могу понять, как извлечь из базы данных. Я пытаюсь определить количество отделов в столбце ( DEPTNAME ), которые содержат в заголовке строку «компьютер».

Я думал, что следующая команда даст мне мой ответ, но она просто возвращает значение 0:

select count(DEPTNAME)
from Department
where DEPTNAME LIKE '%comp%';

Однако, когда я использую эту команду, я получаю возврат 41. Однако это число неверно.

select count(DEPTNAME)
from Department
where DEPTNAME LIKE '%c%';

По сути, мне просто нужно знать команду для СУБД, чтобы найти случайную строку и отобразить количество раз, когда эта строка появляется в столбцах.

Автор: B.Straat Источник Размещён: 08.11.2019 11:02

Ответы (3)


3 плюса

Решение

В Oracle сравнения по умолчанию чувствительны к регистру. Вы можете попробовать:

select count(DEPTNAME)
from Department
where lower(DEPTNAME) LIKE '%comp%';

Или еще лучше:

select count(DEPTNAME)
from Department
where lower(DEPTNAME) LIKE '%computer%';
Автор: Gordon Linoff Размещён: 20.08.2016 11:18

1 плюс

попробуйте написать полное имя «компьютер» ... убедитесь, что прописные и строчные буквы, и убедитесь, что оно написано правильно

select count(DEPTNAME)  
from Department
where DEPTNAME LIKE '%computer%';

иначе "% c%" вернет все слова, содержащие c, в любом месте строки.

Автор: Zeina Размещён: 20.08.2016 08:44

0 плюса

Спасибо всем за ваши ответы. Это дало мне то, что я искал! Это был чувствительный к регистру вопрос:

select count(DEPTNAME)
from Department
where lower(DEPTNAME) LIKE '%comp%';
Автор: B.Straat Размещён: 22.08.2016 07:24
Вопросы из категории :
32x32