Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Есть табличка Table1 и Table2 В Table1 ID2 - Внешний ключ таблица 2 Table1 (ID1,ID2) Table2(ID2) Select t1.* from Table1 t1 ,table2 t2 where t1.ID2=t2.ID2 возвращает соотв. строки в случае, если в table2 есть данные. Надо если там нет данных, возвращать все строки: Select t1.* from Table1 t1 Можно ли сделать это в одном селекте? Можно, конечно, проверять, есть ли в Table 2 строки, если есть брать 1 SQL, если нет - другой. Но это не красиво. Желательно проделать это без exec. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 11:38 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
SimpleЕсть табличка Table1 и Table2 В Table1 ID2 - Внешний ключ таблица 2 Table1 (ID1,ID2) Table2(ID2) Select t1.* from Table1 t1 ,table2 t2 where t1.ID2=t2.ID2 возвращает соотв. строки в случае, если в table2 есть данные. Надо если там нет данных, возвращать все строки: Select t1.* from Table1 t1 Можно ли сделать это в одном селекте? Можно, конечно, проверять, есть ли в Table 2 строки, если есть брать 1 SQL, если нет - другой. Но это не красиво. Желательно проделать это без exec. Может быть так сильно не заморачиваться и воспользоваться внешним соединением ? Типа того: Код: plaintext 1. 2. P.S. А вообще то очень рекомендую прочитать висящий топик сверху в данном форуме, при надобности сходить в FAQ и почитать, почему у Sybase 3 разных СУБД и в дальнейшем как минимум указывать, какая СУБД с какой версией используется, так как все штатные телепаты уже давно ушли в отпуск. Так же неплохо бы почитать документацию по основам SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 11:47 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Либо так: Select t1.*, t2.* from Table1 t1 where t1.ID2 *= t2.ID2 Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 11:56 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
ASEnterprise ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 12:15 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Это не то. Create Table #Table1( ID1 numeric ,ID2 numeric ) Create Table #Table2( ID2 numeric Код insert #Table1 (ID1,ID2) values (1,1) insert #Table1 (ID1,ID2) values (2,1) insert #Table1 (ID1,ID2) values (3,2) insert #Table1 (ID1,ID2) values (4,2) insert #Table2 (ID2) values(1) select t1.* from #Table1 t1 ,#Table2 t2 where t1.ID2*=t2.ID2 возвращает 4 строки, а надо, чтобы возвращал 2. left Join всегда будет выводить все строки со стоны звезды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 12:32 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
А вот так?? select * from Table1 t1 where exists(select t1.id2 from Table2 t2 where t1.id2=t2.id2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:09 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Не сразу понятно, что хотели. Вам нужен этот вариант (если конечно ASE прожует): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:16 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Serg08 Это тоже не то, так как insert #Table1 (ID1,ID2) values (1,1) insert #Table1 (ID1,ID2) values (2,1) insert #Table1 (ID1,ID2) values (3,2) insert #Table1 (ID1,ID2) values (4,2) --insert #Table2 (ID2) values(1) select * from #Table1 t1 where exists(select t1.id2 from #Table2 t2 where t1.id2=t2.id2) ничего не возвращает, а должен веруть 4 строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:21 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
ASCRUS, это тоже не то. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:32 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, вот так работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:37 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
Но это практически то же самое, как если написать if (select count(*) from table2)>0 begin end else begin end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:42 |
|
||
|
Разный where в зависомости от заполненности таблицы
|
|||
|---|---|---|---|
|
#18+
авторASCRUS, это тоже не то. Нужно лучше описывать задачу. Гадать на кофейной гуще как то не интересно. Плюс еще желательно пользоваться тегами форматирования скриптов (SRC, CSV), чтобы присутствующие не ломали глаза :) авторНо это практически то же самое, как если написать if (select count(*) from table2)>0 begin end else begin end Это не то же самое, так как Вы привели батч (скрипт), а я привел запрос, который можно выполнить откуда угодно - хоть с клиентского приложения, хоть в представлении. Плюс уже при построении (для ASE я так понимаю компиляции) моего запроса, оптимизатор четко будет знать, какую часть только необходимо выполнить (хотя для ASE опять же желательно на всякий пожарный это точно проверить, так как все мои утверждентия истины только для ASA). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 15:45 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33091113&tid=2013623]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 421ms |

| 0 / 0 |
