SQL 查詢並拼接欄位的兩種方法主要用於多級分類表格顯示(一級/二級/三級/)
阿新 • • 發佈:2019-01-29
表A(id,name,typeid)
表B(typeid,parentid,tnam)
第一種:用CASE WHEN THEN判斷
SELECT CASE WHEN b.parentid IS NULL THEN b.tname WHEN b1.typeid IS NOT NULL THEN b1.tname+'/'+b.tyname ELSE b2.tname+'/'+b1.tname+'/'+b.tname END AS 分類
FROM A a
LEFT JOIN B b ON b.typeid=a.typeid //獲取三級分類
LEfT JOIN B b1 ON b1.typeid=b.parentid //獲取二級分類
LEFT JOIN B b2 ON b2.typeid=b1.parentid //獲取一級分類
//結果 可能:三級分類、二級分類/三級分類、一級分類/二級分類/三級分類
第二種(類似第一種):用ISNULL判斷,相對第一種比較快
SELECT ISNULL(b2.tname+'/','')+ISNULL(b1.tname+'/','')+ISNULL(b.tname,'') AS 分類
FROM A a
LEFT JOIN B b ON b.typeid=a.typeid //獲取三級分類
LEfT JOIN B b1 ON b1.typeid=b.parentid //獲取二級分類
LEFT JOIN B b2 ON b2.typeid=b1.parentid //獲取一級分類
//結果 可能:三級分類、二級分類/三級分類、一級分類/二級分類/三級分類
以上就是本人的小小經驗了