|
|
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Всем привет. Скажите пожалуйста реально ли использовать такую конструкцию: select * from table1 where column1 like '%(select column2 from table2)%' Если нет, то есть ли альтернатива. Сорри за ламмерство, если можно помогите плиз. Спасибо, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 12:31 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Ishtvan, Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 12:35 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Elic (Dobrii edition), Для сравнения колонок в разных таблицах, пример: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 12:39 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Блин, как же я вам всем благодарен!!!Спасибо большое все получилось!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 12:42 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
А скажите плиз если в '%(select column2 from table2)%' будут несколько значений, можно ли использовать что-то типа like in Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 13:48 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Ishtvan, можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 13:55 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Пробую select * from table1 where column1 like in '%(select column2 from table2)%' Пишет ORA-00936 missing expression ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:08 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
IshtvanПробую select * from table1 where column1 like in '%(select column2 from table2)%' Пишет ORA-00936 missing expression не выдумывайте синтаксис, которого таки нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:12 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
IshtvanПробуюСперва на имя отвечающего посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:12 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Подскажите с синтаксисом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:31 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Like in синтаксиса в оракле нет. Можно сделать либо просто in - но тогда проверка на равенство. Либо like - но тогда только один паттерн. В твоем случае, я бы, возможно, сначала склеил строку listagg с какими-то разделителями, а потом использовал regexp_like для того чтобы найти искомое. Это тебе такая подсказка, попробуй сам разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:40 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
like in в oracle есть: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 14:55 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Elic 2.0 new generationlike in в oracle есть: Код: plsql 1. 2. 3. Еlic такую чушь никогда бы не написал. Медитируй над разницей между IN и JOIN. А пока забаню твой IP за дискредитацию. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 16:06 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
ValergradВ твоем случае, я бы, возможно, сначала склеил строку listagg с какими-то разделителями, а потом использовал regexp_like для того чтобы найти искомое. Это тебе такая подсказка, попробуй сам разобраться. Бред. Обыкновенный EXISTS: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 16:11 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
SYБред. Да ладно, чем regexp с условием "или" не вариант-то в некоторых случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 16:59 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев Да ладно, чем regexp с условием "или" не вариант-то в некоторых случаях? А куда его воткнуть если не в subquery c exists? Т.e. получим те-же яйца Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. причем в общем случае как LIKE так и regexp_like пoтpебует экранирования спец символов (правда в LIKE их всего два). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 18:11 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
SYА куда его воткнуть если не в subquery c exists? Один раз собрать строку условие и применить ко всем строкам table1. Не обязательно это будет лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 09:35 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
SY, это не бред, а вариант, который производительней в большинстве реальных кейсов. Подумайте 2 минутки и поймете - почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 11:35 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
ValergradSY, это не бред, а вариант, который производительней в большинстве реальных кейсов. Подумайте 2 минутки и поймете - почему. Включи мозг. Например в table2 две строки c column2 мент и коп a в table1 строкa c column1 постамент. Ты предлaгаешь что-то типа: Код: plsql 1. А надо: Код: plsql 1. Если ты о REGEXP: Код: plsql 1. Тo то ограничение на паттерн 512 байт. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 13:42 |
|
||
|
Запрос в операторе Like
|
|||
|---|---|---|---|
|
#18+
SYТo то ограничение на паттерн 512 байт. SY. И главное, не похоже, чтоб Oracle один раз компилировал автомат и прогонял по нему все записи. Скорее вся regexp_like прогоняется к каждой записи. Хотя возможно это и мое заблуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 14:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39328169&tid=1887212]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 492ms |

| 0 / 0 |
