sql中使用IF條件查詢

2021-10-21 10:31:11 字數 1992 閱讀 3319

@sql

使用場景:當其他模組插入關聯值不一致但是要作顯示時,可以使用鍊錶查詢,利用if來判斷並替換顯示

語句:

select m.id, m.req_raw_material_uuid, m.req_raw_task_uuid, m.material_info_no, m.part_no, m.grade_name, m.pic_no, m.spec, m.quality, m.req_raw_material_num, m.raw_pur_quantity_num, m.company_code, m.instruction, m.req_delivery_date, m.brand, m.create_by, m.create_time, m.update_by, m.update_time, m.remark, m.del_flag, m.if_use, m.status, m.req_raw_task_no, m.req_raw_day, s.real_name, (select c.customer_full_name from basic_customer_info c where c.id = t.customer_uuid)as customername, t.customer_uuid, t.req_raw_task_from

if(t.req_raw_task_from = 0,b.unit_name,m.unit_no) as unitno

from mes_req_raw_material m

left join sys_user s on m.create_by = s.user_id

left join mes_req_raw_task t on t.req_raw_task_uuid = m.req_raw_task_uuid

left join basic_compute_unit b on m.unit_no = b.unit_no

例句:if(t.req_raw_task_from = 0,b.unit_name,m.unit_no) as unitno

釋義:如果【if】(列名【t.req_raw_task_from】 = 值為『0』,則使用值1【b.unit_name】,否則使用值2【m.unit_no】)作為【 as】 輸出名【unitno】

同理:當要尋找某傳入值是否存在於某錶,存在則將值置為1(find_in_set)

select m.id, m.req_raw_task_uuid, m.req_raw_task_no, m.req_raw_task_from, m.customer_uuid, m.req_raw_person, m.req_raw_day, m.company_code, m.create_by, m.create_time, m.update_by, m.update_time, m.remark, m.del_flag, m.if_use, m.status, m.instruction, s.real_name as createname, c.customer_full_name as customername, r.no as reqrawneedno

,if(find_in_set(#,afp.audit_user) > 0,1,0) as is_audit_user

from mes_req_raw_task m

left join sys_user s on m.req_raw_person = s.user_id

left join act_to_form_process afp on afp.form_uuid = m.req_raw_task_uuid and afp.company_code = m.company_code and afp.form_type = 50

left join basic_customer_info c on m.customer_uuid = c.id

left join req_requirement r on r.id = m.req_raw_need_no

sql中使用if多條件判斷

1 以一表為例 bill 單據表 id billno status amount create date 1 gr0001 gr 155 2009 09 09 2 do0001 do 150 2009 09 09 2 so0001 so 153 2009 09 09 說明 status gr表示 進...

wcdb中使用rowid做查詢條件

近期有個需求是需要通過rowid的方式降序查詢所有的結果,具體的sql語句是這樣的 select from tbl mail recent list order by rowid descrowid作為sqlite裡面相對特殊的屬性,是可以直接使用的,但是對於wcdb的winq語法那就麻煩了,於是在...

SQL 條件查詢

按條件表示式 其中 意思一樣,都是不等於,建議用 邏輯表示式 and or not 模糊查詢 like between and in is null 檢視name第3個字元為n,第五個為z的記錄 select from user where name like n z between and 可以提...