2

重複の可能性:
TSQL Select の各行に乱数を生成するにはどうすればよいですか?

Excel シートを SQL データベースにインポートしています。db テーブルには次の列があります。パスポート番号|フライト番号

Excelシートをインポートすると、インポート後にsrnoがNULLのままになります。ここで、この Srno 列を sql クエリを使用して更新し、乱数または非ランダムなシリアル番号を持つようにする必要がありますが、パスポート番号が同じ場合は同じ srno 値を持つ必要があります。 srno は、例えば次のように同じ値でなければなりません:

srno | passportnumber|flightnumber
12   | ab32434       |AI-2011
13   | ab565235      |AI-2562
14   | ABC123        |AI-2025
14   | ABC123        |AI-2000
14   | ABC123        |AI-5623
15   |XYZ12334       |AI-5625
4

2 に答える 2

2
with cte as (
  select DENSE_RANK() OVER (ORDER BY passportnumber) as rank,
    srno
  from table)
update cte
  set srno = rank;

これにより、パスポート順にシリアル番号が付与されます。これを変更して、乱数がプリロードされたルックアップ辞書に基づいて真の乱数を与えることは簡単なので、演習として残します。

于 2012-11-19T09:21:28.497 に答える
0

同じパスポート番号が複数回発生する場合は、最初にデータを正規化し、一意のパスポート番号と ID 増分をオンにした ID 列を含むテーブルを作成することを検討する必要があります。

次に、フライト テーブルをパスポート ID (この場合は「srno」) で更新し、列「passportnumber」を削除します。

于 2012-11-19T09:37:54.887 に答える