0

SQL クエリのみを使用してデータを表示するという要件が 1 つあります。テーブル名: EMP_DEPT

    DEPARTMENT  |   EMPLOYEE    |   SALARY
    DEPT1       |   ABC         |   20000
    DEPT1       |   MNO         |   30000
    DEPT1       |   XYZ         |   25000
    DEPT2       |   DEF         |   42000
    DEPT2       |   GHI         |   35000
    DEPT3       |   JKL         |   36000

そして、私が期待していることは次のようになります

    DEPARTMENT  |   EMPLOYEE    |   SALARY
    DEPT1       |   ABC         |   20000
                |   MNO         |   30000
                |   XYZ         |   25000
    DEPT2       |   DEF         |   42000
                |   GHI         |   35000
    DEPT3       |   JKL         |   36000

このように印刷する選択クエリは何になりますか。MSSQL を DB として使用する

前もって感謝します。

4

2 に答える 2

3

これを試して。''または必要に応じて使用できますNULL。パーティションで注文したいかもしれませんEMPLOYEE

SELECT 
   CASE WHEN rn = 1 THEN DEPARTMENT ELSE '' END  as DEPARTMENT,
   EMPLOYEE,
   SALARY
FROM
(
   SELECT *, ROW_NUMBER() OVER (PARTITION BY DEPARTMENT ORDER BY (SELECT 1)) rn
   FROM EMP_DEPT
) A
于 2013-01-08T15:09:10.380 に答える
1

を使用ROW_NUMBER()して部門が最初に表示されたときに識別し、CASEステートメントを使用して部門名または空白を表示できます。

SELECT
    CASE
        WHEN ROW_NUMBER() OVER(PARTITION BY DEPARTMENT ORDER BY EMPLOYEE) = 1
        THEN DEPARTMENT
        ELSE ''
    END AS DEPARTMENT,
    EMPLOYEE,
    SALARY
FROM EMP_DEPT
ORDER BY EMP_DEPT.DEPARTMENT, EMPLOYEE
于 2013-01-08T15:13:32.740 に答える