sql >> データベース >  >> RDS >> Sqlserver

後続の行で同じ値の出力をスキップする

    DECLARE @tblABC TABLE
    (
        SrNo INT, [Date] DATETIME, BillNo CHAR(5), Amount DECIMAL(10,2)
    );
    
    INSERT @tblABC SELECT 1,'20120210','VAT-1',1200.00
    UNION ALL SELECT 2,'20120210','RET-4',50.00
    UNION ALL SELECT 3,'20120210','RET-5',150.50
    UNION ALL SELECT 4,'20120211','VAT-2',1500.00
    UNION ALL SELECT 5,'20120211','RET-6',2505.00
    UNION ALL SELECT 6,'20120212','VAT-3',05.00;
    
    ;WITH x AS 
    (
      SELECT SrNo, [Date] = REPLACE(CONVERT(CHAR(10), [Date], 103), '/', '-'), 
        BillNo, Amount, rn = ROW_NUMBER() OVER (PARTITION BY [Date] ORDER BY SrNo)
        FROM @tblAbC
    )
    SELECT SrNo, [Date] = CASE rn WHEN 1 THEN [Date] ELSE '' END, BillNo, Amount
      FROM x 
      ORDER BY SrNo;
    


    1. 更新時のSQLサーバーは現在のタイムスタンプを設定します

    2. OracleAPEXへのCASの実装

    3. SQLite ALTER TABLE

    4. MySQLと同じ方法でPHPの文字列を比較する