3

次の表のスニペットを検討してください。 ここに画像の説明を入力

この特定のテーブルには 14 の列があり、表示されていない列はすべて問題ありませんが、この列から始めて、strengthすべての値が 1 桁分右にシフトされています。したがって、100MG は強度であり、days_sup ではありません。数量は days_sup 列に入力し、drug_class には現在 H4B にあるデータを入力する必要があります。最後に、std_cost のカンマの前のすべてを 1 列左に移動し、列の右にあるすべてを std_cost に残す必要があります。したがって、テーブルがどのように見えるかのスニペットは次のようになります (簡潔にするために短縮されています): (SQL Server 2008)

strength   days_sup   drug_class   dispfee   std_cost
100MG      6          H4B          1.5       5.06

テーブル内のこのエラーは、テーブル全体の行の約 0.05% でのみ発生し、`where std_cost like '%,%' という条件で発生します。これらの列をすべて一度に更新できる方法はありますか? シーケンステーブルと列の序数インデックスを使用して可能かもしれないと考えていました。

4

2 に答える 2

2

問題があるのは約9列だけなので、手動で行います。このような、

UPDATE YourTable
SET strength =  days_sup 
  , days_sup = quantity
  .....
  ,  dispfee  = LEFT( STD_COST, CHARINDEX(',',STD_COST) -1 )
  ,   STD_COST = RIGHT (STD_COST, LEN(STD_COST) - CHARINDEX(',',STD_COST))
where std_cost like '%,%'
于 2013-04-29T13:59:15.887 に答える