|
|
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Привет! У меня база на Oracle 10g. В базе есть таблица с полям id,a1,b1,c1,d1,a2,b2,c2 (причем кол-во полей a..d под разными цифрами различается). Часто приходится выполнять поиск определенного значения сразу по всем полям с определенной цифрой. Например, выполнять такое выражение (a1=1 or b1=2 or c1=1 or d1=1). Возможно ли реализовать функцию, в которую в sql предложении подавать только a1=1, а она уже будет преобразовывать в (a1=1 or b1=2 or c1=1 or d1=1) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 15:45 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Зурбаган, динамический SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 15:48 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Можно. А можно и без, подготовив шаблон (и если таблица огромная, то сделав функциональные индексы по полям склейки): Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:00 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Fogel, Будешь клеить без разделителя, чтобы потом не отличить мух от котлет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:22 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Fogel, Как связаны секция with и таблица t с полем two в твоём примере? В целом пример просто образец - как не надо делать. От непонимания как работают алиасы и объединение множеств, до потери области видимости. Не говоря уж о том, что задачу ТС подобный запрос не решает. Ответ шК0ДЕР куда ближе к истине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:26 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Зурбаган, Шутки для, забавы ради. На 10g не уверен, что прокатит. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:38 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:43 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
env, Код: plsql 1. лишнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:46 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Зурбаган, создаете вью (в прімере v) запрос будет выглядеть как select from v where x member (y) за лентяйство придется платить производительностью (возможно будут тормоза) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:46 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Зурбаган, В продолжение шутки Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:48 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
envFogel, Как связаны секция with и таблица t с полем two в твоём примере? Вот так: Код: plsql 1. 2. 3. 4. 5. 6. 7. В целом пример критики просто образец непонимания замысла. )) AmKadБудешь клеить без разделителя, чтобы потом не отличить мух от котлет? если вместо * перечислить поля, так понятней? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:48 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
полба Код: plsql 1. 2. 3. я так понял что Зурбаган-у лень в запросе перечислять a1, b1, a2, b2, c2 ... ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:51 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
о, Stax точней выразился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:52 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
FogelВ целом пример критики просто образец непонимания замысла В целом пример продолжения тупежа просто образец воинственного ламерства. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И фразу AmKad ты тоже не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:54 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Staxя так понял что Зурбаган-у лень в запросе перечислять a1, b1, a2, b2, c2 ...select '('||ltrim(column_name, rtrim(column_name, '1234567890'))||','||column_name||'),' from dba_tab_columns ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:55 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Fogelтак понятней? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 16:57 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
where owner table_name column_na, можно и через || но с разделителями и тогда where instr(','||значение||',' s) > 0 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:03 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
envFogelВ целом пример критики просто образец непонимания замысла В целом пример продолжения тупежа просто образец воинственного ламерства. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И фразу AmKad ты тоже не понял. dual? ну могли бы ещё в пример вместо конкретной таблицы пакет вставить или баш-скрипт, и показать ошибку. AmKad не понял, что рядом со склейкой будут отдельные значения, сам факт возврата строки, значит значение найдено. если только id нужен, так вместо t.* можно написать t.id, ну или перечислить колонки с нужными цифрами. Стакс, однако, лучше написал - он сечёт фишку. а вы, енв, нет - только ругаетесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:06 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
StaxFogelтак понятней? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. окей. теперь ясно. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:08 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Fogelну могли бы ещё в пример вместо конкретной таблицы пакет вставить или баш-скрипт, и показать ошибку. Т.е. для тебя так и не дошло, что твой алиас two в union all дальше своего стейтмента не пройдёт? Продолжай упорствовать в проявлении своего ламерства дальше. Или задумайся и всё-таки попробуй понять, что же тебе написали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:13 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
FogelAmKad не понял, что рядом со склейкой будут отдельные значения И сколько дублей одной строки ты планируешь вернуть в результате? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:16 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
envFogelну могли бы ещё в пример вместо конкретной таблицы пакет вставить или баш-скрипт, и показать ошибку. Т.е. для тебя так и не дошло, что твой алиас two в union all дальше своего стейтмента не пройдёт? Продолжай упорствовать в проявлении своего ламерства дальше. Или задумайся и всё-таки попробуй понять, что же тебе написали. Стакс как-то понятней пишет - его понял. вашу злость - нет. ... подумал. думаю, у вас много желчи. такие сообщения понимать не хочется при всём желании. но поскольку у вас свербит от нерадивой "молодёжи" вроде меня, то я специально для вас, дабы вы обрели благодать, переписал бы вот так (хотя без разделителей все равно не правильно): Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:27 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
envFogelAmKad не понял, что рядом со склейкой будут отдельные значения И сколько дублей одной строки ты планируешь вернуть в результате? ровно n ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:27 |
|
||
|
Перебор определенных полей через или в sql запросе
|
|||
|---|---|---|---|
|
#18+
Fogelдабы вы обрели благодать, переписал бы вот так Fogelровно n А теперь, дабы я уж точно обрёл благодать, подумай ещё немного. Какая польза для спросившего от твоего однозначно неработающего запроса, который не проверен даже на выборке из dual, работает только для одного вырожденного случая и то случайно, и возвращает дубли строк? Кроме головной боли в попытках сделать из этого говна конфетку - никакой. Поэтому, ну не бросайся ты писать "что-то", не сделав нормальный тест-кейс на бурундуках и кошках (dual). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2017, 17:33 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=135&tid=1884813]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 355ms |

| 0 / 0 |
