|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Товарищи, помогите устранить пробел в знании T-SQL синтаксиса. Задача выражается следующим кодом. Код: sql 1. 2. 3. 4.
-- То есть логика такая - вывести значение некой таблично функции, если она ничего не выводит, то вывести значение это же функции с другим аргументом. Но - при таком синтаксисе эта логика не работает, если tf ничего не выводит, то и в результирующи набор ничего не попадет. То есть "outer apply" нужно заменить на какой то иной оператор соединения, наподобие Full Outer Join. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 14:20 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 14:26 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
А где связь между tf и tf2? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 14:27 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Мистер Хенки Код: sql 1. 2. 3. 4. 5. 6.
А при таком синтаксисе SomeTableFunction(1) будет вызываться один раз или два? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 14:37 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
McCar, два. Еще можно через таблицу сделать Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:03 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Может, так? Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:05 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Мистер ХенкиMcCar, два. Еще можно через таблицу сделать Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Не.. Multi-statement функции для меня не вариант, мне для олапной таблицы фактов, там производительность критична. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:13 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
McCarМистер ХенкиMcCar,два.Еще можно через таблицу сделатьНе.. Multi-statement функции для меня не вариант, мне для олапной таблицы фактов, там производительность критична.иногда инлайны в план вписываются даже хуже, чем мульти-статменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:22 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
iapМожет, так? Код: sql 1. 2.
Тут не понял логику соединения "ON F1.ID=F2.ID". Это условие никогда не выполнится. А даже если выполнится, если одни из наборов пусто, результирующий тоже будет пустой ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:22 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
McCariapМожет, так? Код: sql 1. 2.
Тут не понял логику соединения "ON F1.ID=F2.ID". Это условие никогда не выполнится. А даже если выполнится, если одни из наборов пусто, результирующий тоже будет пустойКак Вы представляете себе FULL JOIN? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:29 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
iapMcCarпропущено... Тут не понял логику соединения "ON F1.ID=F2.ID". Это условие никогда не выполнится. А даже если выполнится, если одни из наборов пусто, результирующий тоже будет пустойКак Вы представляете себе FULL JOIN? Ой... Таки да.. загнался. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:39 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
iapМожет, так? Код: sql 1. 2.
А так получается что функция в любом случае вызывается два раза. Мне же нужно, чтобы с аргрументом =2 она вызывалась только в тех случаях, когда нет результатат для аргумента=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:45 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 15:51 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
McCarМне нужно, чтобы с аргрументом =2 она вызывалась только в тех случаях, когда нет результатат для аргумента=1 Вызвали функцию с аргументом 1, она вернула таблицу (id, <value/null>), отобрали все ID для которых value is null. Вопрос - как передать в ту же самую функцию отобранные ID, если она их не требует при вызове (даже с аргументом 2)? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 16:04 |
|
Аналог Full Outer Join для соединения табличных функций
|
|||
---|---|---|---|
#18+
McCarМистер ХенкиMcCar, два. Еще можно через таблицу сделать Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Не.. Multi-statement функции для меня не вариант, мне для олапной таблицы фактов, там производительность критична. получается выбор между multi-statement или дополнительным вызовом SomeTableFunction(). надо сравнивать ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 16:13 |
|
|
start [/forum/topic.php?fid=46&msg=38320888&tid=1706298]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 281ms |
0 / 0 |