您好,登錄后才能下訂單哦!
SQL在業務中使用if存在的問題是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
if(true,'1','0')
在sql中 if 是非此即彼的選擇,因此使用時需要注意業務問題:
舉例:
判斷用戶是否新注冊或者老注冊用戶
select
tb.*
,if(t_user.user_id is not null,'新注冊用戶','老注冊用戶') as new_sign_user
from tb
left join t_user ## 用戶id是唯一性的
on tb.ds = t_user.ds
and tb.user_id = t_user.user_id
在新老注冊用戶是沒有任何問題,因為用戶只有兩種屬性,要么是新注冊,要么是老注冊,用if沒有問題;
select
tb.*
,case when t_first_pay.from_user_id is not null and t_first_pay.ds < tb.ds then '老付費'
when t_first_pay.from_user_id is not null and t_first_pay.ds = tb.ds then '新付費'
else '未付費' end as new_pay_user
from tb
left join t_trade_flow_first_type as t_first_pay ## 用戶首次付費
on tb.ds = t_first_pay.ds
and tb.user_id =t_first_pay.user_id
付費用戶有三種屬性,老付費屬性、新付費屬性、未付費,因此不能再使用了if 判定,需要使用case when 進行多重判定;
if 使用最好,但是也需要注意業務場景,窮盡業務可能性;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。