幾個常用sql函式使用舉例

2021-04-21 11:23:07 字數 1743 閱讀 9315

1.find_in_set、replace函式獲取某個結點在某個結點下的級別以及case/when/then/end的使用:

select u.userid,u.repid,u.parentid,u.usertype,u.firstname,u.lastname,u.city,u.state,

find_in_set('-',replace(replace(parentid,'101-102-103-104-',''),'-',',-')) downlevel,

case when c.status=0 then 'active' when c.status=2 then 'locked'  when c.status=3 then 'vacated' when c.status=4 then 'vacating' end status ,

l.levelname rank,c.personalcv totalcv

from commission c  

left outer join  user u on u.userid = c.distributorid 

left outer join level l on c.levelid = l.levelid 

where c.year= 2008 and month = 3  and ( u.parentid like '101-102-103-104-%' or u.parentid like '%-101-102-103-104-%' ) 

order by downlevel

注:(1)如果parentid等於『101-102-103-104-105-106-』,那麼此結點相對於104結點來說,downlevel的值是3。

(2)注意case/when/then/end的使用。

2.if函式的使用

select o.ordernumberfordisplay,if(o.state is null or o.state = '',u.state,o.state) state,

if(o.city is null or o.city = '',u.city,o.city) city,

if(o.county is null or o.county = '',u.county,o.county) county,o.tax,o.paidtime

from orders o,user u

where o.paidtime between '2008-09-03 0:00:00' and '2050-01-02 0:00:00'  and u.state = 'ak' and o.status in ( 20,21,40,41,50 )  and u.userid = o.shipto

注:使用if語句,不僅可以判斷is null,還能夠判斷為空的情況。

3.sum和ifnull函式的使用

select levelid,

triplediamondexecutive,

sum(ifnull(retailcommission, 0))+sum(ifnull(overridecommission,0))+sum(ifnull(adjustedcommission, 0)) as commissionspaid

from commission

where (year*100+month) > '$p!' and (year*100+month) < '$p!'

group by commissioned

其實,在使用sql函式時,我們可以到mysql使用者手冊中查,這不需要多長時間。

SQL裡變數的宣告以及常用函式舉例

知識點 宣告變數 declare關鍵字 迴圈語句 while.begin end 資料型別轉換 cast 函式 應用舉例 初始化指令碼 create table dbo test id int identity 1,1 not null,tid int null,discription nvarch...

幾個常用的SQL

一 刪列 alter table 表名 drop column column b hana中 alter table 表名 drop 欄位名 二 增列 alter table 表名 add 列名 varchar 20 hana中 alter table schema1 table1 add crea...

matlab collect 函式使用舉例

在matlab中,使用collect函式來合併同類項,其使用格式如下 collect s,v 命令用於將符號矩陣s中所有同類項合併,並以v為符號變數輸出 collect s 命令使用findsym函式規定的預設變數代替上式中的v 應用例項 syms x y collect x 2 y y x x 2...