leetcode 1440. 計算布林表示式的值---case when配合if
阿新 • • 發佈:2021-05-14
計算布林表示式的值
題目分析:題目中給了兩張表,一張是x和y的值是多少,還有一張是x和y之間的關係,要求根據這兩張表給出true或者false。
首先如果光有x和y而沒有對應的值肯定不能進行比較,所以我們先得連線x和y對應的值,這個地方注意,不能使用inner join而應該使用left join。
接著要使用case when來判斷兩個變數的關係,而且需要根據給的符號的不同分別給出結果。
先進行連線得出最後要使用的表
select V1.value value1,E.*,V2.value value2 from Expressions E left join Variables V1 on E. left_operand = V1.name left join Variables V2 on E.right_operand = V2.name
在得出的要使用的表上面使用case when進行判斷
select left_operand,operator,right_operand,
case operator
when ">" Then if(value1>value2,'true','false')
when "<" then if(value1<value2,'true','false')
when "=" then if(value1=value2,'true','false')
end value
from (
select V1.value value1,E.*,V2.value value2 from Expressions E left join Variables V1 on E.left_operand = V1.name left join Variables V2 on E.right_operand = V2.name) F1
提交結果如下: