Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, если в выборку добавляется динамическое поле поисковым выражением CASE, то можно ли по этому полю тут же поставить условие? Если можно, то как? У меня поле формируется (и всё равно =case, или case as) , но при добавлении условия на это поле сообщается, что оно Invalid column name Ну это не исходник, но упрщённо что-то типа такого: Код: sql 1. 2. 3. 4. 5. 6. 7. Без where отрабатывает, с where - Invalid column name 'Field5'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 03:27 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 04:40 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
rtv, 1) Вложить запрос в подзапрос. Во внешнем запросе наложить условие фильтрации по полю, вычисленному внутренним запросом. Код: sql 1. 2. 3. 2) Сделать всё тоже самое, но через СТЕ: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 04:42 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
3) можно ведь при желании если есть необходимость экономии памяти на промежуточных наборах - заменить дополнительной нагрузкой на повторное вычисление всего case, типа: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 05:03 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
vikkiv, Да не будет там никаких промежуточных наборов ни с CTE, ни с derived table - оптимизатор все равно все развернет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 05:46 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 10:08 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
nullin Код: sql 1. 2. 3. 4. 5. 6. Есть какой-то сакральный смысл в таком выражении мыслей в терминах SQL? Мне кажется, это выглядит доступнее для понимания... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 11:34 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичЕсть какой-то сакральный смысл в таком выражении мыслей в терминах SQL? Мне кажется, это выглядит доступнее для понимания...В терминах SQL подзапросы, ИМХО, выглядят нативнее и понятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 12:02 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
alexeyvgРуслан ДамировичЕсть какой-то сакральный смысл в таком выражении мыслей в терминах SQL? Мне кажется, это выглядит доступнее для понимания...В терминах SQL подзапросы, ИМХО, выглядят нативнее и понятнее.То есть, я имел в виду не эти 2 варианта CROSS APPLY, а, например, это: Щукина Анна1) Вложить запрос в подзапрос. Во внешнем запросе наложить условие фильтрации по полю, вычисленному внутренним запросом. Код: sql 1. 2. 3. 2) Сделать всё тоже самое, но через СТЕ: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 12:03 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
alexeyvgВ терминах SQL подзапросы, ИМХО, выглядят нативнее и понятнее. Я имел в виду конкретно ( CROSS APPLY - SELECT FROM VALUES ) - подзапрос в подзапросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 12:15 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
rtv, Код: sql 1. 2. 3. 4. Такое делать категорически неверно, т.к. поля не должны зависеть друг от друга. Верным решение было бы провести нормализацию таблиц и переписать запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 12:54 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовТакое делать категорически неверно, т.к. поля не должны зависеть друг от друга. интересно, где таким гениальным выводам учат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 13:00 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовrtv, Код: sql 1. 2. 3. 4. Такое делать категорически неверно, т.к. поля не должны зависеть друг от друга. Верным решение было бы провести нормализацию таблиц и переписать запросы. Владислав, это же не код, это очень упрощённый пример для задания вопроса - можно ли поле, сформированное CASE, использовать в том же select, в котором оно формируется. Похоже, что нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 13:20 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Всё понятно. Одним селектом не выкрутишься... Какой вариант логичнее, сакральнее, оптимальнее я оценить не могу. Меня пока все рабочие устраивают ... Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 13:48 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
rtvВсё понятно. Одним селектом не выкрутишься...Все приведенные варианты и есть "один select" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 13:52 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
" можно ли поле, сформированное CASE, использовать в том же select, в котором оно формируется? " select список_полей Считается, что все поля в этом списке полей для каждой строки вычисляются в один и тот же момент времени, причем порядок их вычисления не фиксируется. Поэтому НЕЛЬЗЯ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:08 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Wlr-l, Что касается самого первого поста, то нужно вспомнить о логических стадиях выполнения запроса. Предложение select хотя и стоит первым, но выполняется практически последним (о сортировке не забыть бы), поэтому в предложении where, которое выполняется раньше, алиасы полей не доступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:18 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
invmrtvВсё понятно. Одним селектом не выкрутишься...Все приведенные варианты и есть "один select" invm, запрос один, а операторов select 2. Wlr-l уже тут подытожил, внутри оператора select динамическое поле недоступно. Только если обратиться к результату этого select снаружи -"Одним селектом не выкрутишься.." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:22 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Wlr-lWlr-l, Что касается самого первого поста, то нужно вспомнить о логических стадиях выполнения запроса. Предложение select хотя и стоит первым, но выполняется практически последним (о сортировке не забыть бы), поэтому в предложении where, которое выполняется раньше, алиасы полей не доступны. Wlr-l, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:26 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
rtv, Почему же? "Динамическое поле", т. е. алиас вполне доступен на стадии сортировки, так как она выполняется после стадии select. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:26 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:28 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
rtvinvm, запрос один, а операторов select 2. Wlr-l уже тут подытожил, внутри оператора select динамическое поле недоступно. Только если обратиться к результату этого select снаружи -"Одним селектом не выкрутишься.." ой, да ладно. один select Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:29 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Очень много советов "как это можно сделать", но нужно объяснить ТС почему конструкция select field as a from table where a=value не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:38 |
|
||
|
как задать условие на динамически создаваемое поле?
|
|||
|---|---|---|---|
|
#18+
Wlr-lОчень много советов "как это можно сделать", но нужно объяснить ТС почему конструкция select field as a from table where a=value не работает. так вы ж уже про алиас и порядок обработки написали можно и доку показать https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-transact-sql?view=sql-server-2017#logical-processing-order-of-the-select-statement там ясно написано Conversely, because the SELECT clause is step 8, any column aliases or derived columns defined in that clause cannot be referenced by preceding clauses ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2019, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39819836&tid=1687752]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 385ms |

| 0 / 0 |
