0

年齢、性別、ポイントの 3 つのデータ列があります。年齢は年齢、性別はMかF、ポイントは1~100です。

性別が M の場合、ポイント列にあるものに 5 ポイントを追加し、性別が F の場合、ポイント列にあるものから 3 ポイントを引くように、新しい列を作成するにはどうすればよいですか?

CASEが必要になると思います。ALTER TABLE を使用して PointsRevised という新しい列を追加してから、追加します。

ここで、性別が M か F かに応じて、この新しい PointsRevised 列に新しい値を設定します。

UPDATE [Example].[dbo].[example]
SET POINTSREVISED
CASE 
WHEN Gender = 'M' Then PointsRevised = Points + 5  
WHEN Gender = 'F' Then PointsRevised = Points - 3
END

私は明らかに何か間違ったことをしています。

4

1 に答える 1

6

これはうまくいきます:

UPDATE [Example].[dbo].[example]
SET POINTSREVISED =
  CASE 
  WHEN Gender = 'M' THEN Points + 5  
  WHEN Gender = 'F' THEN Points - 3
  END

より簡単:

UPDATE [Example].[dbo].[example]
SET POINTSREVISED =
  CASE Gender
  WHEN 'M' THEN Points + 5  
  WHEN 'F' THEN Points - 3
  END

Gender の有効な値が 'M' と 'F' だけである場合 (そして NULL にすることはできません)、上記WHEN 'F' THENを単純に に置き換えることができますELSE

要件によっては、計算列の方が適切に機能する場合があります。

于 2013-02-07T22:38:17.883 に答える