2012-01-11 5 views
0

3つのフィールドがあり、3つの列が特定の値と等しい場合は、2列の値を取得します。SELECTでこれを実行できますか?IFまたはCASEステートメントを使用しますか?3番目のフィールドに基づいて、1つのフィールドの値を別のフィールドに割り当てることはできますか?

+2

列3は、* *一定の値と等しくない場合は、あなたが何をしたいですか? – AakashM

+1

実際にサンプルデータ、期待される出力、およびあなたのクエリを投稿するべきです。 – jadarnel27

答えて

3

CASEステートメントはこれを行う最も簡単な方法です。次のSQLでは、2つの列が比較されます。これを変更してWHEN Col2 = 'xxxx' THEN xxxx'を使用することができます。

SELECT Col1, Col2, CASE 
        WHEN Col2 = Col1 THEN 'True' 
        ELSE 'False' 
        END AS 'Columns Match' 
    FROM Table 
0

あなたはSELECTステートメント内CASE句を使用することができます - IFは、SQLServerの中でこのように動作しません。

1

希望これは、両方の列のデータ型は

0
select Alpha, Beta, Gamma, 
    case 
    when Alpha > 2 * Beta then Gamma 
    when Beta = Gamma then Alpha + 3 
    when Gamma = 2 then 13 
    else 42 
    end as 'Omega' 
    from Alphabet 

最初の試合の勝利異なる場合

Select 
    Case 
     when columnthree = 'VALUE' 
      then column2 
      else 'do something' 
    end as [column name] 
from 
    table name 

また、あなたには、いくつかの変換を行いたいかもしれません正しい方向にあなたをリードしています。それは、様々な状況で役立つかもしれないので、

CASEは、値を返します。

delete ... where case when Id > Limit then 1 else 0 end = 1 
update ... set ShoeSize = case when Wide = 1 then ShoeSize + 1 else ShoeSize end, ... 
関連する問題