2017-02-23 52 views
3

Я хочу сортировать column2 на основе значений Column1. Я хочу, чтобы данные split column1 основаны на значении NULL. Окончательный результат запроса будет отображаться на оценке значений в column1Сортировка столбцов таблицы на основе значения NULL

Column1 Column2 
    NULL   100 
    NULL   60 
    NULL   90 
    10   22 
    20   40 
    05   35 
    15   20 
    40   10 
    30   25 
    20   30 

Would become: 

    Column1  Column2 
    20   40 
    05   35 
    20   30 
    30   25 
    10   22 
    15   20 
    40   10 
    NULL   100 
    NULL   90 
    NULL   60 

Thanks 
+0

Какие СУБД вы используете? Postgres? Oracle? –

ответ

5

Вы можете использовать случай в вашей статье order by так:

Select * from t 
Order by case when column1 is null then 1 else 0 end, column2 desc 
2

Используйте случай в вашем заказе на

ORDER BY case when column1 is null then 1 else 0 end, column2 desc 
2
SELECT 1 AS Grp, column2 
FROM T 
WHERE column1 IS NOT NULL 
UNION ALL 
SELECT 2 AS Grp, column2 
FROM T 
WHERE column1 IS NULL 
ORDER BY Grp, column2; 

Это альтернатива подходу GurV, где это действительно может извлечь выгоду из индексов.

подход гурв в:

enter image description here

Союз подход:

enter image description here

Смежные вопросы