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

一時テーブルに挿入するときに機能しないことによる注文

    SQL テーブルは順不同を表します セット。これについて不明な点はありますか?

    SELECTすると テーブルから、結果は順序付けされていません . 1 つの例外は、ORDER BY を使用する場合です。 外側のクエリで。したがって、ORDER BY を含めます そうすれば結果は整うでしょう。

    編集:

    仕事をなくすことができます クラスター化された主キーを導入することにより、並べ替えを行います。

    create table #temp (
        Id int identity(1,1) primary key clustered, 
        SKU varchar(10),
        QtyRec int,
        Expiry date,
        Rec date
    );
    

    そうすれば:

    insert into #temp(SKU, QtyRec, Expiry, Rec)
        select SKU, QtyRec, Expiry, Rec
        from @Data
        order by id;
    

    #temp のクラスター化された主キー order by で指定された順序であることが保証されています .次に、クエリ:

    select *
    from #temp
    order by id;
    

    クラスター化インデックスを使用して、結果を順番に返します。並べ替えは必要ありません。



    1. 動的クエリのパラメーターとしての SQL ストアド プロシージャ引数

    2. 結果の列名を知らなくてもSQL Server Pivotできますか?

    3. PostgreSQLデータベース列から数値以外の値を返す

    4. jdbcドライバーorg.gjt.mm.mysql.Driverは何のためにありますか?