
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.12.2017, 15:45
|
|||
|---|---|---|---|
|
|||
Перебор определенных полей через или в 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:48
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Зурбаган, динамический SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:00
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Можно. А можно и без, подготовив шаблон (и если таблица огромная, то сделав функциональные индексы по полям склейки): Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:22
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Fogel, Будешь клеить без разделителя, чтобы потом не отличить мух от котлет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:26
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Fogel, Как связаны секция with и таблица t с полем two в твоём примере? В целом пример просто образец - как не надо делать. От непонимания как работают алиасы и объединение множеств, до потери области видимости. Не говоря уж о том, что задачу ТС подобный запрос не решает. Ответ шК0ДЕР куда ближе к истине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:38
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Зурбаган, Шутки для, забавы ради. На 10g не уверен, что прокатит. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:43
|
|||
|---|---|---|---|
|
|||
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:46
|
|||
|---|---|---|---|
Перебор определенных полей через или в 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:48
|
|||
|---|---|---|---|
Перебор определенных полей через или в 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:51
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
полба Код: plsql 1. 2. 3. я так понял что Зурбаган-у лень в запросе перечислять a1, b1, a2, b2, c2 ... ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:52
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
о, Stax точней выразился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:54
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
FogelВ целом пример критики просто образец непонимания замысла В целом пример продолжения тупежа просто образец воинственного ламерства. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И фразу AmKad ты тоже не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 16:55
|
|||
|---|---|---|---|
Перебор определенных полей через или в 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:57
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Fogelтак понятней? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 17:03
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
where owner table_name column_na, можно и через || но с разделителями и тогда where instr(','||значение||',' s) > 0 ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 17:06
|
|||
|---|---|---|---|
Перебор определенных полей через или в 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:08
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
StaxFogelтак понятней? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. окей. теперь ясно. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 17:13
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Fogelну могли бы ещё в пример вместо конкретной таблицы пакет вставить или баш-скрипт, и показать ошибку. Т.е. для тебя так и не дошло, что твой алиас two в union all дальше своего стейтмента не пройдёт? Продолжай упорствовать в проявлении своего ламерства дальше. Или задумайся и всё-таки попробуй понять, что же тебе написали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 17:16
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
FogelAmKad не понял, что рядом со склейкой будут отдельные значения И сколько дублей одной строки ты планируешь вернуть в результате? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 17:27
|
|||
|---|---|---|---|
Перебор определенных полей через или в 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:33
|
|||
|---|---|---|---|
Перебор определенных полей через или в sql запросе |
|||
|
#18+
Fogelдабы вы обрели благодать, переписал бы вот так Fogelровно n А теперь, дабы я уж точно обрёл благодать, подумай ещё немного. Какая польза для спросившего от твоего однозначно неработающего запроса, который не проверен даже на выборке из dual, работает только для одного вырожденного случая и то случайно, и возвращает дубли строк? Кроме головной боли в попытках сделать из этого говна конфетку - никакой. Поэтому, ну не бросайся ты писать "что-то", не сделав нормальный тест-кейс на бурундуках и кошках (dual). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&tablet=1&tid=1884813]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 482ms |

| 0 / 0 |
