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

SQL - 行数を維持しながら、繰り返される行を null 値に置き換える

    これを行うには、1 年以内に行を列挙します。次に、最初の 1 つを除くすべてを更新します。

    with toupdate as (
          select t.*, row_number() over (partition by [year] order by [date]) as seqnum
          from t
         )
    update toupdate
        set [year] = NULL
        where seqnum > 1;
    

    これを select にしたい場合 ステートメント:

    with ts as (
          select t.*, row_number() over (partition by [year] order by [date]) as seqnum
          from t
         )
    select [date],
           (case when seqnum = 1 then [year] end) as [year]
    from ts;
    



    1. 本番リポジトリからのテスト環境の作成

    2. jsp jstlsqlmysqlのように奇妙な動作

    3. Ignited-Datatablesで検索中の「like」操作の照合の不正な組み合わせ

    4. SQLクエリエラー:「右括弧がありません」