一、如何在html中设置样式使有\n的文本换行
<label style="white-space: pre-line">共计\n发送</label>
二、Oracle不常见的几个函数的作用
1、INSTR函数
instr( string1, string2 ) // instr(源字符串, 目标字符串) 返回值是索引的位置 从1开始
instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符串, 目标字符串, 起始位置, 匹配序号)
详解:在string1中查找string2,返回string2的位置,string1的第一个字符的位置是1而不是0。第二种写法可以指定起始位置以及第几次匹配到结果。
示例:
- select INSTR('this is my csdn', 'is') from dual; -- 结果为3
- select INSTR('this is my csdn', 'k') from dual; -- 结果为0
- select INSTR('this is my csdn', 'is', 3, 2) from dual; -- 从索引为3的位置开始查找第2次出现'is'的位置 结果为6
用处:
- 可当模糊查询使用,等同于like '%%'
- 查找目标字符串的位置,用于截取等其他函数
2、SIGN函数
sign(exp)
详解: ()内必须为数字,可以格式是number的字段,可为单数值,也可以是表达式如10 - 11,num_column1 - num_column2 。()内值为正数返回1,负数返回-1,0返回 0
示例:
- select sign(2) from dual; -- 结果为1
- select sign(0) from dual; -- 结果为0
- select sign(-3) from dual; -- 结果为-1
- select sign(10-13) from dual; -- 结果为-1
- select sign(PIBNUM - PIBQUANTITY) from Table1 where account = 'ZUCK_XC' ; -- 结果为-1
用法:
- 比较()数值的大小,判断正负
3、DECODE函数
decode(条件, 值1, 值操作,值2,值操作......,值n,值操作,缺省值)
详解:流程控制函数,可理解为switch..case...default...
示例:
- select decode(PIBNUM, 89, PIBAIRLINE * 2, PIBAIRLINE) from ( from Table1 where account = 'ZUCK_XC'; -- 结果为182
- 结合上面的sign()使用 select decode(sign(PIBNUM-90), 1, PIBAIRLINE * 2, -1, PIBAIRLINE * 0.5, PIBAIRLINE) from ( from Table1 where account = 'ZUCK_XC'; -- 结果为45.5
用法:
- 可用于多重情况下对值进行不同操作
- 用于行转列操作
select "user_name",
sum(decode("course", '英语', "score", null)) as ENGLISH,
sum(decode("course", '数学', "score", null)) as MATH
from "course_score"
GROUP BY "user_name"
order by "user_name"
===>
4、ROW_NUMBER() OVER(PARTITION BY COL_NAME1 ORDER BY COL_NAME2)
详解:分组排序函数,按COL_NAME1分组,按COL_NAME2在组内排序,此函数计算的值就是每组内部排序后的顺序编号(组内连续的唯一的)
示例:
- select t.*, row_number() over(partition by "user_name" order by "score") as score_order from "course_score" t
5、RANK() OVER(PARTITION BY COL_NAME1 ORDER BY COL_NAME2)
详解:分组排序函数,按COL_NAME1分组,按COL_NAME2在组内排序,此函数计算的值就是每组内部排序后的顺序编号(跳跃排序,如果有两个第1接下来就是第3)
示例:
- select t.*, rank() over(partition by "user_name" order by "score") as score_order from "course_score" t
6、DENSE_RANK() OVER(PARTITION BY COL_NAME1 ORDER BY COL_NAME2)
详解:分组排序函数,按COL_NAME1分组,按COL_NAME2在组内排序,此函数计算的值就是每组内部排序后的顺序编号(连续排序,如果有两个第1接下来还是第2,与row_number()的区别在于可以有重复值)
示例:
- select t.*, dense_rank() over(partition by "user_name" order by "score") as score_order from "course_score" t