1.帆软公式的switch用法:
switch(要判断的变量,值1,返回值1,值2,返回值2,...)
将要判断的变量放在第一个逗号前,若该变量等于值1,则返回返回值1,以此类推。
结合nvl可以写一个default。
如,当不满足任何switch内的值时,返回空
nvl(switch(要判断的变量,值1,返回值1,值2,返回值2,...),'')
2.将数据库查询到的一列值变成一串字符串输出,如,查询到
需要得到北京','上海','宁波','重庆','成都','香港','广州这样一串字符串。
假设这个数据查询的列名为CITY
则sql为
SELECT
replace(wm_concat(T.CITY),',',''',''') as CITY
或者
wm_concat(T.CITY,''',''')
FROM TABLE_NAME T
单引号中的单引号需要用两个单引号进行转义。
则得到结果为
为了用帆软提取这个值,使用公式value
value('数据查询名','CITY',1)
意为拿取该数据查询的CITY列的第一个值。
3.获取数据库查询的其中几行
WHERE ROWNUM<=10
拿取前10行
4.分区排序
SELECT *
FROM (select sno,cno,degree,
row_number()over(partition by cno order by degree desc) mm
from score)
where mm = 1;
按cno分区按degree排序,并拿取每个分区的第1名。
5.sql的decode函数用法,相当于if...else if ... else语句
SELECT
ID,
DECODE(inParam,'param1','值1' ,'param2','值2','param3','值3','param4','值4','param5','值5') name
FROM test_table;
#(1)如果第一个参数inParam == 'param1'
#那么那么 select 得到的那么显示为值 1;
#(2)如果第一个参数inParam == 'param2'
#那么那么 select 得到的那么显示为值 2;
#(3)如果第一个参数inParam == 'param3'
#那么那么 select 得到的那么显示为值 3;
#(4)如果第一个参数 inParam == 'param4'
#那么那么 select 得到的那么显示为值 4;
#(5)如果第一个参数 inParam == 'param5'
#那么那么 select 得到的那么显示为值 5;
#(6)都不相等就为 ' '
————————————————