1

WHEREの filterring 句の下でIf Else (または同様のケース決定技術:)を使用したい。これが私のサンプルコードです。

select * from some_table
where 
record_valid_flg = 1 and
if(user_param = '1')
then age > 20
else
name like 'Mr%'
end if

どうすればそれを理解できますか。私は本当に提案をいただければ幸いです..ありがとう!

4

4 に答える 4

1

CASEを使用してみてください。

SELECT * from some_table
WHERE  record_valid_flg = 1 
AND
CASE 
     WHEN  (user_param = '1') THEN age > 20 
     ELSE name like 'Mr%' 
END 
于 2013-09-26T09:36:17.080 に答える
1

次のように CASE を使用します。

select * from some_table
   where 
    record_valid_flg = 1 
    and CASE
      WHEN user_param = '1' THEN age > 20
      ELSE name like 'Mr%'
     END;
于 2013-09-26T09:36:26.080 に答える
1

You can simply do it like this

SELECT 
    *
FROM some_table
WHERE record_valid_flg = 1
    AND IF(user_param = '1', age > 20, name LIKE 'Mr%')
于 2013-09-26T09:37:20.783 に答える
1
CASE WHEN user_param = '1' THEN age > 20 ELSE name like 'Mr%' END
于 2013-09-26T09:34:18.460 に答える