2016-04-25 7 views
1

比較値を比較する3列の値Col2をテーブルに入れたい。SQLの3列を比較する方法

Col1 Col2 Col3

​​

25 > 20 TRUE

15 = 25 FALSE

SELECT (case when Col2 = '<' then Col1 < Col3 else Col1 end) 

誰も私を助けることができますか? 高度なありがとう。

+1

はあなたの問題を解決するために_anything_を試してみましたか?人々は自分の努力を示すのが大好きですが、まず自分のことを示す必要があります。基本的なT-SQLを知っていますか?それは全く難しいとは言えません。最初のGoogleの結果は[SQL Serverの平等のために2つの列を比較するにはどうすればいいですか?](http://stackoverflow.com/q/1632792/447156)。 –

+0

こんにちはSoner、私は2時間以上も試しましたgoogleで検索する最後に私はあきらめるだけでここに投稿します。ここではサンプル..ケースWHEN col1 user3538475

答えて

2

あなたはこのように、caseを使用して試すことができます:

case 
    when Col2 = '<' then 
    Col1 < Col3 
    when Col2 = '>' then 
    Col1 > Col3 
    when Col2 = '=' then 
    Col1 = Col3 
end case 

クエリが

select case 
      when col2 = '=' then 
      case when (col1 = col3) then 1 else 0 end 
      when col2 = '>' then 
      case when (col1 > col3) then 1 else 0 end 
      when col2 = '<' then 
      case when (col1 < col3) then 1 else 0 end 
      else 
      0 
     end 
    from MyTable 

別の可能性がありpossibily

(Col2 = '<' and (Col1 < Col3)) or 
    (Col2 = '>' and (Col1 > Col3)) or 
    (Col2 = '=' and (Col1 = Col3)) 
+0

私はその時にエラーが発生しました... '<'付近の構文が正しくありません。 – user3538475

+0

@ user3538475にアドバイスしてください:* sql query *に入れたい場合は、ストアドプロシージャではなく 'where'に入れて、* 2番目の構造体を使うかブール値を隠すか(' 1' 「0」など) –

+0

ありがとうございました。私の一日を節約してください。 – user3538475

関連する問題