使用DECODE解決去字段中固定首字的匹配問題

2021-07-06 07:24:10 字數 1648 閱讀 3988

platform:

os:windows server 2012 r2 64bit

oracle:11.2 64bit

引子:

醫院審計進入實質性階段,在對耗材使用表與耗材採購表進行inner join時發現,耗材使用表中的item_name欄位開頭有部份含有w的標識(這主要是院方用於對物品是否收費管理的標誌),因此在連線的時候只匹配除去w的其他字元內容。在這裡使用到了decode函式。

select item_code,

item_name,

**數量 ,

**總額 ,

**單價 ,

b.* ,

case

when b.採購價 < 250

then b.採購價 * 1.1

when b.採購價 between 250

and499

then b.採購價 + 25

when b.採購價 between 500

and4999

then b.採購價 * 1.05

when b.採購價 >= 500

then b.採購價 + 250

end"標準售價" ,

round ((**數量 - 入庫總量)/入庫總量,2) "超入庫量比值",

**單價 - (case

when b.採購價 < 250

then b.採購價 * 1.1

when b.採購價 between 250

and499

then b.採購價 + 25

when b.採購價 between 500

and4999

then b.採購價 * 1.05

when b.採購價 >= 500

then b.採購價 + 250

end) "超單價收費"

from ( select item_code ,

item_name ,

sum (實收數量) "**數量",

sum (實收金額) "**總額",

sum (實收金額)/sum (實收數量) "**單價"

from audi_intermediate_exp_use2

group

by item_code ,

item_name) a

inner

join (select 產品通用名,

採購價 ,

sum (採購總量) "採購總量",

sum (入庫總量) "入庫總量",

sum (採購總額) "採購總額",

sum (入庫總額) "入庫總額"

from audi_highexpendable_purchase

group

by 產品通用名,

採購價) b

on (decode (upper (substr (a.item_name, 1, 1)), --1

'w', substr (a.item_name, 2, length (a.item_name)),

a.item_name)) = b.產品通用名;

1.decode的使用。

end

查詢mysql欄位中固定字串並替換的幾個方法

我們的要求是,把位址欄位的中國去掉,並跟據位址欄位來設定所屬省份的 province id 字段。第一 替找字串,我們可以用mysql裡的replace 這個用法,本博也有提到。詳見 好我們把 中國 這個字元給去掉。update www.cppcns.comtable set 程式設計客棧addre...

LINQ解決根據某個欄位去重

想要list結果重複 的資料很簡單,只要.dinstinct 就好了 但是如果想要根據某個字段去除重複的資料,上面的方法就幫不上忙了,我們需要重寫乙個方法,直接上例子吧 serializable public class homepageusermodel public string titleus...

解決IE相容模式問題 使IE使用固定的渲染模式

ie瀏覽器從ie8開始新增了相容模式,開啟後會以低版本的ie進行渲染。相容模式有可能會導致網頁顯示出問題,於是我們通常在html中新增下列 來使 ie 使用固定的渲染模式 將 設定成html5的模式,那麼使用者開啟專案之後,文件模式就是標準的 即不會是ie5qurik模式 但有可能是ie7標準模式 ...