SQL語句技巧--複雜邏輯的SQL簡單實現(1)

 最近公司同事碰到需求,實現一個功能,想用一個sq語句實現,他讓我看看如何實現sql。因爲前期作培訓時說到儘可能減小和數據庫的交互,能一條sql取出來就不用兩次sql語句:sql

CREATE TABLE [dbo].[zping.com](
     [id] [varchar](32) NOT NULL,
     [objid] [varchar](32) NOT NULL,
     [objtype] [tinyint] NULL,
     [config] [varchar](256)
 ) 數據庫

   具體要求:spa

     表[zping.com]中存放數據:id爲惟一,objid存放是機構id,objtype存放的是機構類型,config字段存放的是排序

具體業務數據。select

    objid存放的可能機構id(總公司,分公司,辦事處,表明處)id,只能一個,objtype存放的是機構的數字sql語句

爲(總公司爲1,分公司爲2,辦事處爲3,表明處爲4)總結

     數據庫裏的數據多是4個id的數據都有,也可能都沒有,也多是隻有其中幾個機構數據

 

   業務要求:前臺傳入機構id(總公司,分公司,辦事處,表明處id),只能返回一條數據top

                 要求若是有總公司,取出總公司,若是沒總公司,若是有分公司,取分公司...... 若是都沒有則不取。db

 

 最後實現:


select top 1 [config] from ( select * from [selfcustom] where objid in('66','77') )
 t order by objtype asc

 

 總結:

      這裏主要用到了order by排序功能實現若是有總公司,就去總公司,若是有則去取分公司等。並經過top實現最多取出一條的目的。

相關文章
相關標籤/搜索