SQL 邏輯處理

2021-09-01 18:23:54 字數 2446 閱讀 3119

自己推理出來的 sql邏輯處理 判斷分情況執行不同的sql  值得收藏

select decode(stat,'e',(select 'ok' from dual),'f',(select 'no' from dual ))

from(

select case when aa-bb > 0 then

'e'else

'f'end

stat

from( select   x.a aa , f.b bb from (select (1-2) a from dual) x,(select (4-2) b from dual) f ) );

-----------------這個sql雖然簡單 但是有繞 得收藏

select 

case when status8 = 'n' then 'n' else 'y' end status,

case when status8 = 'n' then '報錯吧' end mess

from(

select decode(stat,'e',

(select decode

(stat1,'h',

(select

case when hkjssj-gdsj > 0 then 'n' --表示要考慮烘烤工序

else 'y' --表示不需要考慮x

end status2

from (

select round(to_number(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date(k.hkgzsj,'yyyy-mm-dd hh24:mi:ss')) * 24 ) hkjssj--f.gdsj

from( select to_char(max(partition_date),'yyyy-mm-dd hh24:mi:ss') hkgzsj from sfc_step

where split(operation_bo,2) = 'sbak1' and sfc_router_bo like '%stb130624000021%') k ) ),

------h

'j',(select 'y' from dual )

) status1 --j狀態 j表示不需要考慮烘烤查詢

from( ---- 考慮sfc是否經過烘烤

select case when numcs > 0 then

'h' -- e狀態 h表示考慮sfc過烘烤查詢

else

'j' -- e狀態 j表示不需要考慮烘烤查詢

end stat1 from (select count(*) numcs from sfc_step

where split(operation_bo,2) = 'sbak1' and sfc_router_bo like '%stb130624000021%'))

) -------------------- 上面考慮e的情況

,'f',(select 'y' from dual ) ) -- f 不用考慮

status8

from( ---第二層from 取出 當前時間-刷紅膠的時間得到小時 與工單下面的維護時間比較 e時考慮烘烤工序 f不用考慮

select case when jssj-gdsj < 0 then ---換數字除錯

'e' --表示要考慮烘烤工序

else

'f' --表示不需要考慮x

endstat,gdsj --gzsj 過站時間 gdsj 工單維護時間 jssj 計算時間

from( ---第一層from 取出 當前時間-刷紅膠的時間得到小時 ,工單下面的維護時間

select round(to_number(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date(x.gzsj,'yyyy-mm-dd hh24:mi:ss')) * 24 ) jssj,f.gdsj

from(select to_char(partition_date,'yyyy-mm-dd hh24:mi:ss') gzsj from sfc_step

where split(operation_bo,2) = 'spri1' and sfc_router_bo like '%stb130624000030%') x, (select value gdsj from custom_fields where handle in(select shop_order_bo from sfc

where sfc = 'stb130624000030' and site = '1000') and attribute = 'max_valid_time') f ))

);

sql語句的常用邏輯處理

table table 的區別 定義的表不drop不會釋放 定義的表會自動釋放 建立 table有兩種方式 1.select into t from tablename 2.create table tablename coumnname1 nvarchar 36 建立 table也有兩種方式用法同...

RunLoop處理邏輯

如圖是從蘋果官方文件擷取下來的runloop處理邏輯流程圖,runloop處理邏輯過程為 1.通知observer即將進入loop 2.通知observer 即將處理timer 3.通知observer將要處理source0 4.處理source0 5.如果有source1,跳到第9步 6.通知ob...

業務邏輯處理

功能的實現,都是依靠業務邏輯來完成的,記得看過不能完成業務邏輯的程式設計師都不會成長的,確實是的,最近在完成業務邏輯的時候,程式的業務判斷有很多的,所以開始接觸,設計模式,看到來一些設計模式,看結合專案,確實是可以根據設計模式來改寫的,so,懂得設計模式可以快速的,寫好的 的。關於函式同步和非同步之...