1. 程式人生 > 其它 >leetcode 1440. 計算布林表示式的值---case when配合if

leetcode 1440. 計算布林表示式的值---case when配合if

計算布林表示式的值
題目分析:題目中給了兩張表,一張是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

提交結果如下:
在這裡插入圖片描述