SQL-запрос - Упорядочить по вопросу - PullRequest
0 голосов
/ 14 сентября 2018

Когда у меня есть дубликаты заказов в таблице, данные отображаются, как показано ниже.Сначала все записи заголовка, а затем записи всех строк для этого конкретного заказа.

OrderNo     Column1  
300         Header   
300         Header   
300         Line   
300         Line    
200         Header  
200         Line  
200         Line    

Ожидаемый вывод:

OrderNo     Column1  
300         Header  
300         Line  
300         Header  
300         Line   
200         Header  
200         Line  
200         Line  

Мне нужно экспортировать эти данные в файл Excel.Так что мне нужна правильная последовательность записей, т.е. Order1, Заголовок, Строка, затем Order2 Заголовок, Строка. Как я могу добиться этого с помощью sql?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете чередовать заголовки и строки, используя row_number() в предложении order by:

select t.*
from t
order by orderno,
         row_number() over (partition by orderno, column1 order by ?);

? для любого столбца, определяющего окончательный порядок среди строк.Если вам все равно, вы можете просто использовать orderno.

...