SQL入門之2 函式1

wmlm發表於2007-04-03
字串函式 數字函式[@more@]

-- 常規的多表聯接
select title,firstname,lastname
from customers,orders,orderitems,books
where customers.customer#=orders.customer#
and orders.order#=orderitems.order#
and orderitems.isbn=books.isbn
order by title;
-- 使用join進行多表聯接
select title,firstname,lastname
from customers join orders on customers.customer#=orders.customer#
join orderitems on orders.order#=orderitems.order#
join books on orderitems.isbn=books.isbn
order by title;

-- 在外部聯接時不能使用OR 或 IN

-- 單行函式
-- 字串函式
substr('abcdefg',-2, 2) ==> 'ef'
lpad('2',3,'*') ==> '**2'
ltrim('abcdefg','abc') ==> 'defg'
ltrim('bcdefg','abc') ==> 'defg'
ltrim('abcdefg','bc') ==> 'abcdefg'
replace('abcdefg','b','888') ==> 'a888cdefg'
concat('ab','cdefg') ==> 'abcdefg'
concat(concat('ab','cd'),'8') ==> 'abcd8'
-- 數字函式
ROUND(23.333,2) ==> 23.33
ROUND(123456.78,-2) ==> 123500
TRUNC(23.338,2) ==> 23.33
TRUNC(123456.78,-2) ==> 123400
-- 日期函式
-- 差幾個月
MONTHS_BETWEEN(SYSDATE,SYSDATE+233)==> -7.6129032
-- 7個月之前
add_months(sysdate,-7) 03-SEP-06
-- 7個月之後
add_months(sysdate,7) 03-NOV-07
-- 下週一
next_day(sysdate,'monday') 09-APR-07

/**
D 一週中的第幾天
DD 一月中的第幾天
DDD 一年中的第幾天
B。C A。D 公元前 公元后

*/
nvl2('a',2,3) --如果不為空到2 為空到3,
-- 9的個數要給夠,否則顯示一堆#
to_char(12345.22,'999,999.99') 12,345.22
to_char(123.22,'0000009,999.99') 0000000,123.22

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-908461/,如需轉載,請註明出處,否則將追究法律責任。

相關文章