我的工作中SQL学习

 

一、Decode()函数

1、表达式:decode(条件 ,值1,翻译值1,值2,翻译值2,...值n,翻译值n, 缺省值)

2、解释:

if (条件==值1)        return(翻译值1)

Else  if(条件==值2)   return(翻译值2)

......

Elseif (条件==值n)    return(翻译值n)

else                return(缺省值)

 

二、Round()函数

1、表达式:round(列名,返回的小数位数)

2、解释:select round(money,0) from表名

原数据为 money:2.3   查询完后成2

 

三、Ceil()函数

1、表达式:ceil(X)

2、解释:函数返回的最小整数的值不小于X 

   Select celi(3.4) from dual; 值为4

3、round和ceil对比

 

 

四、Sign()函数

   1、表达式:select sign(n) from dual

   2、解释:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0

 

五、Cast()用法

       1、表达式:cast(列名/值/字符串 as 数据类型)

       2、解释:select cast(id as int ) id from表名

 

六、Nvl()函数和Nvl2()函数

       1、表达式:nvl(表达式1,表达式2);nvl2(表达式1,表达式2,表达式3)

       2、解释:如果表达式1为空,则返回表达式2的值;表达式1不为空,返回表达式1的值

                如果表达式1不为空,则返回表达式2的值;表达式1为空,返回表达式3的值

 

七、层次化查询(即树形结构查询)

       1、表达式:select [level],colunm,expression from table_name [where条件1] [start with条件2] [connect by prior条件3]

       2、解释:level:伪列,用于表示树的层次

                条件2:层次查询的起始条件,指定阶层的根

                条件3:定义父节点和子节点之间的关系,prior指定父节点。作为运算符,prior和加(+)减(-)运算的优先级相同。

 

八、转换函数

   1、表达式:①to_date(char[,format_model])       ②to_char(date,format_model])

   2、解释:to_char(now(),'Day, HH12:MI:SS')  结果'Tuesday , 05:39:18'

 

九、其他

   1、null表达式:is null / is not null  错误的=null / !=null

   2、in表达式:in的用法是多个or

   3、order by表达式:只能用在最外层查询后面

   4、substr(x,starti_ndex,length):substr(‘字符串’,开始的下标,要取得长度)

   5、有时候为了方便备份(或历史数据归档),习惯把A表的数据到B表,用到 insert into B select * from A ,使用这句话的时候一定要注意下会不会锁A表,导致正在对A的操作全部失败。

   6、有一些场景因为不能优化sql或各种原因导致sql不走索引,这个时候就可以用 force index强制走索引,比如select * from A force index A.id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值