|
|
|
MSSQL2000, ORDER BY
|
|||
|---|---|---|---|
|
#18+
Драсти! Тут такой вопрос: нужно сортировать данные в SELECT-запросе в зависимости от значения N переменных. т.е.: IF @A = 1 AND @B = 1 AND @C = 1 AND @D = 1 SELECT a, b, c FROM k <JOINы всякие> ORDER BY 1, 2, 3, 4 ELSE IF @A = 1 AND @B = 1 AND @C = 1 AND @D = 2 SELECT a, b, c FROM k <JOINы всякие> ORDER BY 1, 2, 4, 3 ... ELSE IF @A = 4 AND @B = 4 AND @C = 4 AND @D = 4 SELECT a, b, c FROM k <JOINы всякие> ORDER BY 4, 3, 2, 1 вывод: ну оооочень громоздко На улице - 30 градусов, но я честно сидел и думал как обойтись без такого, слишком "прямого", решения. Думал долго...были всякие мысли. Например: 1. оставить ORDER BY постоянным, а изменять порядок столбцов в SELECT (особой выгоды в размере и скорости я думаю это не прибавит) 2. если бы в ORDER BY можно было бы ставить переменные... :( 3. повеситься... Вот собственно и все. Если кто чем сможет буду благодарен. Заранее пасибо. P.S.: кстати - с использованием этого решения текст SP ~ 180 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2002, 01:20:28 |
|
||
|
MSSQL2000, ORDER BY
|
|||
|---|---|---|---|
|
#18+
Если я правильно понимаю, то приведенный пример имеет лишь отдаленное сходство с реальным примером. Я подозреваю, что в реальности, все намного более упрощено и "закономеризированно". Например, когда @A = 1, то всегда первый критерий сортировки будет столбец A, и так далее. В этом случае можно например написать такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2002, 02:09:57 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32036384&tid=1821845]: |
0ms |
get settings: |
11ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
127ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 408ms |

| 0 / 0 |
