4

これが私のテーブルです。

私がする必要があるのは、更新するCASEWHENUPDATEクエリを作成することです

  • CurrentCredit +1(1〜15の場合)

  • CurrentCredit +2(16〜30の場合)

  • CurrentCreditx.10および>=31の場合は切り上げ

4

1 に答える 1

6

例を見てください

SQLフィドルデモ

何かのような

UPDATE MyTable
SET CurrentCredit = 
CASE 
  WHEN CurrentCredit BETWEEN 1 AND 15
    THEN CurrentCredit + 1
  WHEN CurrentCredit BETWEEN 16 AND 30
    THEN CurrentCredit +2
  WHEN CurrentCredit >= 31
    THEN CurrentCredit * 10
  ELSE CurrentCredit
END

また、CurrentCreditがでありFLOAT、ではない場合は、次のINTようなものを試してみてください。

UPDATE MyTable
SET CurrentCredit = 
CASE 
  WHEN CurrentCredit >= 1 AND CurrentCredit < 16
    THEN CurrentCredit + 1
  WHEN CurrentCredit >= 16 AND CurrentCredit < 31
    THEN CurrentCredit +2
  WHEN CurrentCredit >= 31
    THEN CurrentCredit * 10
  ELSE CurrentCredit
END;

編集

修正されたリクエスト(> = 31 CurrentCredit + CEILING(CurrentCredit * 0.1))については、CEILINGの使用をご覧ください。

UPDATE MyTable
SET CurrentCredit = 
CASE 
  WHEN CurrentCredit BETWEEN 1 AND 15
    THEN CurrentCredit + 1
  WHEN CurrentCredit BETWEEN 16 AND 30
    THEN CurrentCredit +2
  WHEN CurrentCredit >= 31
    THEN CurrentCredit + CEILING(CurrentCredit * 0.1)
  ELSE CurrentCredit
END;

SQLフィドルデモ

于 2012-09-29T10:27:48.730 に答える