该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
2.case ()
用法:case when 'a' then 'b' else 'c' end
例子1:case when sex=1
then '男'
else '女'
end
例子2:
CASE WHEN sex=1
THEN (case when age>=18
then '成年男人'
else ‘未成年男孩’
end)
ELSE (case when age>=18
then '成年女人'
else '未成年女孩'
3.concat(a,b)
用法:拼接字符串
例子:concat(a,’%’)给a加上%号
连接多个字符串用||
select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;
select Category || ' - ' || Title as 图书类别from tbl_books;
4.round(a,b)截取数字
格式如下:ROUND(number[,decimals])
其中:number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,小数被去掉。对截取的数字要四舍五入。
例子:select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;
5.ceil(n)和floor(n)
ceil(n) 取大于等于数值n的最小整数;
例子:select title,ceil(cost) from Tbl_Books;
floor(n)取小于等于数值n的最大整数;
6.trunc函数处理数字
trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分。
例子:select title,cost,retail,trunc(cost),trunc(retail) from Tbl_Books;
7.lpad( string, padded_length, [ pad_string ] )
string
准备被填充的字符串;
padded_length
填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad 函数将会把字符串截取成从左到右的n个字符;
pad_string
填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会 在string的左边粘贴空格。
例子:select lpad(Customer_name || '/' || address || '/' || city,80) as 顾客信息 from Tbl_Customer;
8.substr(字符串,截取开始位置,截取长度) //返回截取的字;
例子:select substr(Name,0,4) as 出版社,substr(Contact,0,1) as 姓 from Tbl_Publisher;
9.replace()