Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как выбрать данные начинающиеся с А до Е ?  [new]
p2x4
Member

Откуда:
Сообщений: 70
Подскажите: Как выбрать данные начинающиеся с А до Е?
или
Есть в оракле функция которая возвращает первый (произвольный) символ?
28 апр 06, 13:21    [2613942]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Один из многих вариантов

select * from scott.emp
where substr(ename,1,1) IN ('A', 'B', 'C', 'D', 'E')
28 апр 06, 13:25    [2613959]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
pamir
Member [скрыт]

Откуда:
Сообщений: 27433
p2x4
Подскажите: Как выбрать данные начинающиеся с А до Е?


Если 10ка, то регулярные выражения должны помочь

p2x4

Есть в оракле функция которая возвращает первый (произвольный) символ?

substr
28 апр 06, 13:25    [2613960]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
where substr(field,1,1)= any('A','B','C','D','E')


-----------------------
Вечны налоги,
Смерть и потеря данных.
Что на этот раз?
Картинка с другого сайта.
28 апр 06, 13:26    [2613965]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Elic
Member

Откуда:
Сообщений: 29980
RTFM SUBSTR (FAQ)
28 апр 06, 13:26    [2613966]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
p2x4
Подскажите: Как выбрать данные начинающиеся с А до Е?
или
Есть в оракле функция которая возвращает первый (произвольный) символ?


однако:

SELECT * FROM DICT WHERE TABLE_NAME BETWEEN 'A' AND 'F'


есть. SUBSTR называется
28 апр 06, 13:27    [2613968]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Oleg Afanasiev
where substr(field,1,1)= any('A','B','C','D','E')



фигня. имеем фуллскан без вариантов. строки можно тоже на > < сравнивать.
28 апр 06, 13:28    [2613976]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
p2x4
Member

Откуда:
Сообщений: 70
А такой вариант прокатит?

select * from scott.emp
where substr(ename,1,1) >='A' AND substr(ename,1,1) <='Е'
28 апр 06, 13:28    [2613979]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
grexhide
Oleg Afanasiev
where substr(field,1,1)= any('A','B','C','D','E')



фигня. имеем фуллскан без вариантов. строки можно тоже на > < сравнивать.


Начинается.....
Ну пускай FBI делает, если проблемы с фуллсканом.
28 апр 06, 13:30    [2613992]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
p2x4
А такой вариант прокатит?

select * from scott.emp
where substr(ename,1,1) >='A' AND substr(ename,1,1) <='Е'


еще раз.

как ты думаешь, 'AAZ' >= 'A' ? а 'EMOE' < 'E' или же лучше 'EMOE' < 'F' ?
28 апр 06, 13:31    [2613996]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Oleg Afanasiev
grexhide
Oleg Afanasiev
where substr(field,1,1)= any('A','B','C','D','E')



фигня. имеем фуллскан без вариантов. строки можно тоже на > < сравнивать.


Начинается.....
Ну пускай FBI делает, если проблемы с фуллсканом.


а зачем FBI ? вопрос то именно - выдать символьный диапазон.
и вообще, учите матчасть - многие вещи проще, чем кажутся.
28 апр 06, 13:32    [2614001]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Ура ! Ребята , получилось !
Первый опыт регулярных выражений (oracle 10g)

Знатокам, просьба не бить

select * from emp
where regexp_like (ename, '^[ABCDE]')


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
7698 BLAKE MANAGER 7839 01.05.81 2850 2 30 
7782 CLARK MANAGER 7839 09.06.81 2450 2 10 
7499 ALLEN SALESMAN 7698 20.02.81 1600 2 30 
7876 ADAMS CLERK 7788 12.01.83 1100 2 20 
28 апр 06, 13:35    [2614015]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
grexhide

а зачем FBI ? вопрос то именно - выдать символьный диапазон.
и вообще, учите матчасть - многие вещи проще, чем кажутся.

ещё один....
28 апр 06, 13:38    [2614029]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
pamir
Member [скрыт]

Откуда:
Сообщений: 27433
grexhide
Oleg Afanasiev
grexhide
Oleg Afanasiev
where substr(field,1,1)= any('A','B','C','D','E')



фигня. имеем фуллскан без вариантов. строки можно тоже на > < сравнивать.


Начинается.....
Ну пускай FBI делает, если проблемы с фуллсканом.

и вообще, учите матчасть - многие вещи проще, чем кажутся.

28 апр 06, 13:41    [2614041]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
dmidek
Ура ! Ребята , получилось !
Первый опыт регулярных выражений (oracle 10g)

Знатокам, просьба не бить

select * from emp
where regexp_like (ename, '^[ABCDE]')


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
7698 BLAKE MANAGER 7839 01.05.81 2850 2 30 
7782 CLARK MANAGER 7839 09.06.81 2450 2 10 
7499 ALLEN SALESMAN 7698 20.02.81 1600 2 30 
7876 ADAMS CLERK 7788 12.01.83 1100 2 20 
Поздравляю!

А по теме:
select * from tab where tname>='A' and tname < chr(ascii('E')+1)
28 апр 06, 13:42    [2614048]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Oleg Afanasiev

ещё один....


и к чему это было сказано ?

(Brainbench голову жмет ?)
28 апр 06, 13:43    [2614050]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Tolmachov Dmitiry
Member

Откуда: Москва, Пенза
Сообщений: 1520
Таблицы с A до Е
select * from all_tables t
WHERE t.TABLE_NAME BETWEEN 'A' AND 'F'
ORDER BY t.TABLE_NAME
28 апр 06, 13:44    [2614054]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Tolmachov Dmitiry
Member

Откуда: Москва, Пенза
Сообщений: 1520
Извините, на заметил вариант grexhide :(
28 апр 06, 13:44    [2614058]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
grexhide

и к чему это было сказано ?
(Brainbench голову жмет ?)

у Калины спроси.
28 апр 06, 13:45    [2614061]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Tolmachov Dmitiry
Таблицы с A до Е
select * from all_tables t
WHERE t.TABLE_NAME BETWEEN 'A' AND 'F'
ORDER BY t.TABLE_NAME


тут бочина все же есть.

а если TABLE_NAME = 'F' ?

насчет >= 'A' < 'F' будет все же правильнее.
28 апр 06, 13:45    [2614064]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
fortnet
Member

Откуда:
Сообщений: 526
dmidek
Ура ! Ребята , получилось !
Первый опыт регулярных выражений (oracle 10g)

Знатокам, просьба не бить

select * from emp
where regexp_like (ename, '^[ABCDE]')

[/src]


select * from emp
where regexp_like (ename, '^[A-E]')

тогда уже
28 апр 06, 13:46    [2614065]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
fortnet
regexp_like (ename, '^[A-E]')


Oracle9i (8i) ?
28 апр 06, 13:47    [2614071]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Я тоже тут оптимизирую помаленьку :-)

select * from emp
where regexp_like (ename, '^[A-E]')
28 апр 06, 13:47    [2614072]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
fortnet
Member

Откуда:
Сообщений: 526

А по теме:
select * from tab where tname>='A' and tname < chr(ascii('E')+1)


А что так заковыристо ? А tname<'F' хуже ? ;)
28 апр 06, 14:10    [2614201]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать данные начинающиеся с А до Е ?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
fortnet

А по теме:
select * from tab where tname>='A' and tname < chr(ascii('E')+1)


А что так заковыристо ? А tname<'F' хуже ? ;)

Это же оно и есть :) Просто не всегда есть живой человек, который помнит алфавит и вычисляет следующую букову в уме. На его месте - часто - железная пила..
28 апр 06, 14:24    [2614292]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить