Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

uporządkuj według wielu kolumn

Dlaczego możesz to zrobić w ten sposób:

order by ImpFile DESC, ImpTime desc

Nie, to nie skutkuje tym, co pokazujesz. Powoduje to:

        Import12    2012-05-16 09:55:37.387
Bart    Import12    2012-05-16 09:55:37.387
Sasha   Import12    2012-05-16 09:55:37.387
John    Import12    2012-05-16 09:55:37.383
        Imp01       2012-05-16 09:54:02.477
Ann     Imp01       2012-05-16 09:54:02.477
Mark    Imp01       2012-05-16 09:54:02.477
Sam     Imp01       2012-05-16 09:54:02.477

Zobacz tutaj na przykład

EDYTUJ

Mam dla ciebie sugestię. Może coś takiego:

Dane testowe

DECLARE @T TABLE(Name VARCHAR(100),ImpFile VARCHAR(100),ImpTime DATETIME)

INSERT INTO @T
    ([Name], [ImpFile], [ImpTime])
VALUES
    ('Sam', 'Imp01', '2012-05-16 09:54:02.477'),
    ('Ann', 'Imp01', '2012-05-16 09:54:02.478'),
    ('Mark', 'Imp01', '2012-05-16 09:54:02.477'),
    ('John', 'Import12', '2012-05-16 09:55:37.384'),
    ('Bart', 'Import12', '2012-05-16 09:55:37.387'),
    ('Sasha', 'Import12', '2012-05-16 09:55:37.385');

Zapytanie

;WITH CTE
AS
(   
    SELECT
        ROW_Number() OVER(PARTITION BY  t.[ImpFile] 
                     ORDER BY t.[ImpTime] DESC) AS RowNbr,
        '' AS Name,
        t.ImpFile,
        t.[ImpTime]
    FROM
        @T AS t
)
SELECT
    CTE.Name,
    CTE.ImpFile,
    CTE.[ImpTime],
    0 as SortOrder
FROM
    CTE
WHERE
    CTE.RowNbr=1
UNION ALL
SELECT
    t.Name,
    t.ImpFile,
    t.[ImpTime],
    1 as SortOrder
FROM
    @T AS t
ORDER BY
    ImpFile DESC,SortOrder, ImpTime desc


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie zmiennej dla nazwy tabeli w klauzuli „Od” w SQL Server 2008

  2. Jaka jest różnica między unikalnym kluczem z ograniczeniem „nie zerowym” a kluczem podstawowym?

  3. Próbuję utworzyć procedurę składowaną, aby utworzyć login i użytkownika bazy danych?

  4. Jak monitorować tylko polecenia t-sql w programie SQL Profiler?

  5. Jak mogę utworzyć ograniczenie unikatowe SQL na podstawie 2 kolumn?