版权声明:本文为博主原创文章,未经博主允许不得转载。

这是一位牛人让我们思考的问题,说实话当时真蒙了,函数虽然明白,但细化到这种程度,真的是叫不准啊,下面是几道比较典型的问题,和本人做的实验,不一定准确,而且测验的方法不只一种,请大家多多见谅,一起学习,共同进步!!!

1.在数字前如何补零

SQL> select lpad('123',10,'0') from dual;

LPAD('123'

----------

0000000123

SQL> select lpad(123,10,0) from dual;

LPAD(123,1

----------

0000000123

SQL> select lpad('123',10,'0') from dual;

LPAD('123'

----------

0000000123

2.如果用trim删除空格会不会同时删除掉字符串末尾的回车或者换行符

 

方法:这里面用到了chr函数。Chr函数功能:返回以数值表达式值为编码的字符。说明:函数返回值类型为string,其数值表达式取值范围为0~255.

Chr(10)代表回车

Chr(13)代表换行

Chr(32)代表空格

SQL> select length('Hello'||chr(10)) from dual;

LENGTH('HELLO'||CHR(10))

------------------------

6

SQL> select length(trim('Hello'||chr(10))) from dual;

LENGTH(TRIM('HELLO'||CHR(10)))

------------------------------

6

SQL> select length('Hello'||chr(32)) from dual;

LENGTH('HELLO'||CHR(32))

------------------------

6

SQL> select length(trim('Hello'||chr(32))) from dual;

LENGTH(TRIM('HELLO'||CHR(32)))

------------------------------

5

SQL> select length('Hello'||chr(13)) from dual;

LENGTH('HELLO'||CHR(13))

------------------------

6

SQL> select length(trim('Hello'||chr(13))) from dual;

LENGTH(TRIM('HELLO'||CHR(13)))

------------------------------

6

结论:由上面实验可以得出空格去除不了回车和换行符。

 

3.日期函数months_between的里面的两个值如果左边的值大于右边的值会是什么结果?

查阅了下官方文档,描述如下:

Syntax

Purpose

MONTHS_BETWEEN returns number of months between datesdate1 anddate2. The month and the last day of the month are defined by the parameterNLS_CALENDAR.If date1 is later thandate2, then the result is positive. Ifdate1 is earlier thandate2, then the result is negative. Ifdate1 anddate2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise Oracle Database calculates the fractional portion of the result based on a 31-day month and considers the difference in time componentsdate1 anddate2.

通过黄色部门文字描述,可以知道如果右边(date2)大于左边(date1)返回的number是负值。

实验:

SQL> select months_between

2  (to_date('02-02-2012','mm-dd-yyyy'),

3  to_date('01-01-2012','mm-dd-yyyy')) "Months"

4  from dual;

Months

----------

1.03225806

SQL> select months_between

2  (to_date('2012-01-01','yyyy-mm-dd'),

3  to_date('2012-02-02','yyyy-mm-dd')) "Months"

4  from dual;

Months

----------

-1.0322581

结论:如果date1小于date2值为负数

 

4.case…when函数如果取出的列值有Null的话该怎么判断?

SQL> select a,

2  case nvl(b,4) when 1 then 123

3  when 2 then 123

4  when 3 then 123

5  when 4 then 888

6  when 5 then 123

7  end as b

8  from t;

A          B

---------- ----------

1        123

2        123

3        123

4        888

5        123

总结:我暂时能想到的方法就是用nvl函数转换成可见的数值或字符,我也默认不处理null得到的结果也为空,比如我不指定when 4,这样第4条也就为null了。

5.还有个就是与Null运算得出的结果也为空值。

SQL> select 5*null from dual;

5*NULL

elvis

2012.12.23

知识共享~共同进步

转载请注明:

http://blog.csdn.net/elvis_dataguru/article/details/8393947

常见SQL函数需要注意的细节的更多相关文章

  1. SQLServer 常见SQL函数

    SQL Server SQL函数 by:授客 QQ:1033553122 字符函数 日期函数 数学函数 系统函数

  2. SQL函数说明大全

    一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...

  3. SQL函数说明大全 (转)

    一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...

  4. sql函数(转)

    一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...

  5. SQL函数介绍

    http://www.cnblogs.com/moss_tan_jun/archive/2010/08/23/1806861.html 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用 ...

  6. [转] SQL函数说明大全

    from http://www.cnblogs.com/moss_tan_jun/archive/2010/08/23/1806861.html 一旦成功地从表中检索出数据,就需要进一步操纵这些数据, ...

  7. Access、SQLServer、Oracle常见SQL语句应用区别

    Access.SQLServer.Oracle常见SQL语句应用区别 关劲松 PMP 如果要兼容Access.SQL Server.Oracle三个数据库版本:我们在编写SQL语句的过程中,尽量使用一 ...

  8. SQLServer 常见SQL笔试题之语句操作题详解

    SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...

  9. SQL函数小记

    写一篇笔记,记录一下常见的sql函数,以备之后的查找需要. 算数函数 abs(num):绝对值函数 mod(被除数,除数):求余函数 round(num,保留小数的位数):四舍五入函数 字符串函数 c ...

随机推荐

  1. oracle中的not in和not exists注意事项

    NOT IN:不包括空值 NOT EXISTS:包括空值

  2. [效果不错] nginx 高并发参数配置及linux内核参数优化,完整的内核优化设置。PHP-FPM高负载解决办法。

    背景:对vps小资源的实践中对,https://justwinit.cn/post/7536/ 的再优化,再实践,再优化,特别是Nginx,PHP,内核: 零)Nginx: error_log /da ...

  3. Mysql主从配置笔记

    1.配置my.cnf无效,且mysql进程无法启动 从5.1.7版本开始,不再支持my.cnf直接配置master-host等主从相关配置选项(依然支持replicate-do-db).改为使用 CH ...

  4. android 国际化 设置

    复制了他人的方法 方法和步骤 1 配置选项包括语言代号和地区代号.表示中文和中国的配置选项是 zh-rCN; 表示英文和美国的配置选项是en-rUS.其中,zh 和 en 表示中文和英文: 2 如果想 ...

  5. C语言基础知识【判断】

    C 判断1.判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的).C 语言把任何非零和非空的值假定为 true,把零或 null ...

  6. Jmeter查看QPS和响应时间随着时间的变化曲线

    以下两个插件提供测试结果,扩展图表显示 --- Response Times Over Time --- Transactions per Second 1.打开 https://jmeter-plu ...

  7. 【BZOJ3672】[Noi2014]购票 树分治+斜率优化

    [BZOJ3672][Noi2014]购票 Description  今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.       ...

  8. java服务安装(一):使用java service wrapper及maven打zip包

    目录(?)[+] 1概述 1_1为什么要用服务形式运行 1_2如何让java程序以服务形式运行 1_3打包需求 2程序示例 3maven打zip包 3_1maven-assembly-plugin介绍 ...

  9. ConfigurableBeanFactory

    ConfigurableBeanFactory :关系如下 在上面这样的一个关系图中可以先看下SingletonBeanRegistry的源代码: package org.springframewor ...

  10. zabbix_get 命令介绍

    zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据,在测试自定义监控的时候特别有用 [root@crazy ...