-2

これを解決するのを手伝ってください。クエリは何ですか

ID  Name    Items
101 A   x
102 B   Y
101 A   Z
102 B   S
102 B   J
101 A   Q

今、私は示さなければならない

Id      Name    Items
101         A   X
                Z
                Q
102         B   Y
                S
                J
4

2 に答える 2

1

これは、質問のような一時テーブルを生成し、CTE(共通テーブル式)とcaseステートメントを使用してデータを出力するSQLの例です。MS SQL Server 2008 R2 でテスト済み。

CREATE TABLE #test (
    id INT,
    Name varchar,
    items varchar
);
INSERT INTO #test VALUES
(101, 'A',  'x'),
(102, 'B',  'Y'),
(101, 'A',  'Z'),
(102, 'B',  'S'),
(102, 'B',  'J'),
(101, 'A',  'Q');

WITH tmp AS (
    SELECT CAST(id AS varchar) AS id
        , name
        , items
        , row_number() OVER (PARTITION BY id ORDER BY id) AS rn
    FROM #test
)
SELECT
     (CASE WHEN rn = 1 THEN id   ELSE '' END) AS id
    ,(CASE WHEN rn = 1 THEN name ELSE '' END) AS name
    ,items
FROM tmp;

DROP TABLE #test;
于 2012-06-26T14:20:20.030 に答える
0

SQLクエリではそれを完全に行うことはできません。それがあなたが望む順序だけであるならば、これは:

 select id, name, items 
 from tableName
 order by id, name, items desc

しかし、それはあなたが望むものではありませんね?

于 2012-06-26T12:58:37.557 に答える