oracle where之后 case when
时间: 2023-10-23 16:35:50 浏览: 129
如何使用CASE WHEN语法判断入参代替if test=user-name != null and user-name !=
Oracle的WHERE之后的CASE WHEN语句可以用于根据条件执行不同的逻辑。其中,CASE WHEN表达式有两种形式:简单Case函数和Case搜索函数。简单Case函数的语法为:CASE 表达式 WHEN 值1 THEN 结果1 WHEN 值2 THEN 结果2 ELSE 结果3 END。而Case搜索函数的语法为:CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 ELSE 结果3 END。
在使用CASE WHEN语句进行WHERE条件筛选时,可以使用变形的方式。比如,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data = (CASE WHEN t.column_data = '条件1' THEN t.column_data1 WHEN t.column_data = '条件2' THEN t.rep_data END)。这样可以根据不同的条件筛选数据。
另外,在使用CASE WHEN进行IN运算时,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data IN ( (CASE WHEN t.column_data IN ('条件1', '条件2') THEN t.column_data1 END), (CASE WHEN t.column_data IN ('条件3', '条件4') THEN t.column_data2 END) )。这样可以根据不同的条件进行IN运算。
此外,如果需要使用复杂逻辑进行抓取,可以使用以下语法:SELECT * FROM table_data t WHERE t.col_data IN ( (CASE WHEN t.column_data IN ('条件1', '条件2') AND t.rep_type = 'A' THEN t.column_data1 END), (CASE WHEN t.column_data IN ('条件3', '条件4') AND t.rep_type = 'A' THEN t.column_data2 END), (CASE WHEN t.column_data IN ('条件1', '条件2') AND t.rep_type = 'B' THEN t.column_data3 END), (CASE WHEN t.column_data IN ('条件3', '条件4') AND t.rep_type = 'B' THEN t.column_data4 END), t.column_data5 )。这样可以根据不同的条件执行不同的逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文