decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)
if (條件==值1)
then
return(翻譯值1)
elsif (條件==值2)
then
return(翻譯值2)
elsif (條件==值n)
then
return(翻譯值n)
else
return(預設值)
end if
trunc()函式的用法
/**************日期********************/
1.select trunc(sysdate) from dual --2013-01-06 今天的日期為2013-01-06
2.select trunc(sysdate, 'mm') from dual --2013-01-01 返回當月第一天.
3.select trunc(sysdate,'yy') from dual --2013-01-01 返回當年第一天
4.select trunc(sysdate,'dd') from dual --2013-01-06 返回當前年月日
5.select trunc(sysdate,'yyyy') from dual --2013-01-01 返回當年第一天
6.select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回當前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 當前時間為17:35
8.select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 trunc()函式沒有秒的精確
一般用作條件判斷 例子: where xx>trunc(sysdate,'dd') 大於今天 (就是今天00.00之後開始產生的資料)
to_date('..','..')
select to_date('2020-10-23 ','yyyy-mm-dd') from dual; //就是將對應的格式轉換成date格式2020/10/23
輸出:2020/10/23
to_char(date,'格式');//一般用作日期轉換
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; //將sysdate按照指定格式輸出
輸出:2020-10-23 09:20:30
修改日期格式為年月日時分秒: alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowtime from dual; //日期轉化為年月日時分秒格式
select to_char(sysdate,'yyyy') nowyear from dual; //獲取時間的年
select to_char(sysdate,'mm') nowmonth from dual; //獲取時間的月
select to_char(sysdate,'dd') nowday from dual; //獲取時間的日
select to_char(sysdate,'hh24') nowhour from dual; //獲取時間的時
select to_char(sysdate,'mi') nowminute from dual; //獲取時間的分
select to_char(sysdate,'ss') nowsecond from dual; //獲取時間的秒
nvl(aab001,值x)
判斷是否為空並對其賦值,如果aab001為空則取 值x,如果不為空則取自己aab001
case when then else end
常見例子1:
select
sname,
case
when *** = '1' then '男'
when *** = '2' then '女'
else '其他'
end as ***
from
student //case 後面接屬性*** : case *** when *** =... 和不接是一樣的 該函式一般用來做條件比較取對應合適的值
常見例子2: select a,
sum(case when lx= '付款成功' then '1' else 0 end) as '收款個數'
from
p //case和sum組合使用 ,case將型別分別賦值數字,sum對其進行求和,最後可以得到對應付款成功的個數
upper() 和 lower()
upper()將小寫的全置大寫輸出;lower()將大寫的全置小寫輸出;
select upper('abcabc我') from dual; //輸出『』abcabc我『』
select lower('abcabc我') from dual ;//輸出『』abcabc我『』
instr() 字元查詢函式
格式一:instr( string1, string2 ) // instr(源字串, 目標字串)
例子:
select instr('helloworld','l') from dual; --返回結果:3 預設第一次出現「l」的位置
select instr('helloworld','l',2,2) from dual; --返回結果:4 也就是說:在"helloworld"的第2(e)號位置開始,查詢第二次出現的「l」的位置
select instr('helloworld','l',-2,2) from dual; --返回結果:4 也就是說:在"helloworld"的倒數第2(l)號位置開始,往回查詢第二次出現的「l」的位置
Oracle常用函式
一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...
Oracle常用函式
數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...
oracle常用函式
1.concat c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1 c2都為null,則返回null。他和操作符 返回的結果相同 select concat slobo svoboda username from dualuse...