`
nijiaben
  • 浏览: 130493 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SQL标量函数API

阅读更多
     本文最先发布于http://www.lovestblog.cn,请转载的该文者注明文章出处,谢谢合作。
     下面简单介绍几种标量函数,也是常用的,我们可以通过类似select abs(-123);的语句来看到我们标量函数的效果。
      abs:该函数返回一个数值表达式的绝对值。如abs(-123);

     adddate:该函数将一个时间间隔(参数2)添加到时戳或时戳表达式(参数1)中,与此函数同功能的还有date_add。如adddate('2009-01-01',4);结果为2009-01-05。adddate(2009-01-01,interval 5 month);结果为2009-06-01。adddate(timestamp('2009-01-01'),interval 5 month);结果为2009-06-01 00:00:00。adddate('2009-01-01 12:00:00',interval 5 day);结果为2009-01-06 12:00:00。

      addtime:把两个时间表达式加起来。如addtime('100:00:00','200:02:04');结果为300:02:04。

      ascii:该函数返回一个字符串表达式的第一个字符的ASCII值。

      bin:该函数将参数的数值转换为二进制值。

      bit_count:该函数显示表示参数的值的位数。如bit_count(3)结果为2。

      bit_length:该函数返回字符串值的位长度。如bit_length(bin(2));结果为16

      ceiling:该函数返回大于或等于参数值的最大整数。如ceiling(11.11);->12。ceicling(-11.11);->-11

      char:该函数返回数值参数的字符串字符,与此函数同功能的还有chr函数。如char(82)+char(105)+char(99)+char(107);->'Rich'

      character_length:该函数返回一个字符串表达式的长度,此方法同功能的还有char_length函数。

      charset:该函数返回字符串参数的字符集的名称。

      coalesce:该函数接受多个参数,返回第一个非null值的参数的值。如coalesce(null,null,'ljp');->'ljp';

      concat:该函数合并两个字符串的值。

      conv:该函数将一基数为参数2的值(参数1)转换为另一个以参数3为基数的值。如conv(1110,10,16)表示将以10进制的数1110转换成16进制值为456。后面两个参数必须介于2~36之间,否则结果为null,此外参数1的值应该匹配参数2的基数,否则结果为0。

      convert:该函数转换参数1的数据类型为参数2指定的类型。参数2必须是一种数据类型,包括binary,char,date,datetime,time,signed,signed integer,unsigned,unsigned integer,varchar。如convert('12.56',unsigned integer);->13。

      database:该函数显示当前数据库的名称。

      date:该函数将参数变换为一个日期值。如date('2009-01-01 12:00:00');->'2009-01-01'。

      datediff:该函数计算两个日期或时间戳表达式间的天数。第一个参数减去第二个参数。

      date_sub:该函数从一个日期或时间戳表达式(参数一)中减去一个时间间隔(参数2),与才函数同功能的还有subdate函数。

      day:该函数从一个日期或时间戳表达式中返回月的天数,结果总是介于1~31之间的整数,与此函数同功能的还有dayofmonth。

      dayname:该函数从一个日期或时间戳表达式中返回一周中某天的名称。

      dayofweek:该函数返回一个日期或时间戳表达式中返回某周的天数的序号。该结果总是介于1~7之间的整数。

      dayofyear:该函数返回一个日期或时间戳表达式中返回一年中某日的序号。

      default:该函数返回参数指定的某列的默认值。

      floor:该函数返回小于或等于参数值的最小整数,与ceiling相对。

      exp:该函数返回e的x次幕的结果。

      format:该函数将一个数值的格式设置为nn,nnn,nnn.nnn的格式。第二个参数表示小数点后的数字个数。

      greatest:该函数返回一系列参数中的最大值,和least相对。

      hex:如果参数为数字,那么就返回该数字的十六进制表示;如果是字符串,那么将返回每个字符对应的ASCII码。

      if:如果第一个参数值为true,那么函数返回第二个参数的值,否则返回第三个参数的值。如if((1>2),"ljp","st");将返回st。

      ifnull:如果参数1的值为null,那么返回参数2的值,否则返回参数1的值。如ifnull(null,"ljp");返回"ljp"。

      insert:参数4的值放在参数1中由参数2指定的位置,参数3表示参数1中从参数2指定的位置开始接下来的几个字符将被参数4取代。如insert('abcdefgh',4,3,'zzz');->'abczzzgh'。insert('abcdefgh',,4,2,'zzz');->'abczzzfgh'。insert('abcdefgh',4,0,'zzz');->'abczzzdefgh'。insert('abcdefgh',4,-1,'zzz');->'abczzz'。insert('abcdefgh',1,5,'zzz');->'zzzfgh'。

      instr:该函数返回参数1内参数2的起始位置。如果为找到,则返回0。如instr('12345',4);->4。

      interval:该函数第一个参数指定要插入的值,接下来的参数组成一个升序序列,看第一个参数该插入哪个位置。该函数就是返回该位置。如interval(5,0,1,2,3,6,7);->4表示要把5放在第四个位置(此位置上值为3)之后。

      isnull:如果参数值为null,那么返回1,否则返回0。

      last_day:该函数返回参数指定的日期或时间戳表达式中月的最后一天,如last_day('2009-01-09');->'2009-01-31'。

      lcase:该函数将参数的值的所有大写字母转换为小写字母,与lower同义,与ucase相对。

      left:该函数返回一个字符串值参数1的左侧部分,该部分的长度由第二个参数指定。如left("hello world",3);->'hel'。

      length:该函数返回一个字符串值的字节长度。如length(null);->null。

      ln:该函数返回参数的自然对数,与log同义。

      localtime:该函数返回系统日期和时间,localtimestamp与只同义。

      locate:该函数返回参数1在参数2内的起点位置。如果参数1在参数2内未出现,则返回0。参数3表示开始搜索的位置。注意instr函数的区别,instr函数是返回参数1内参数2的开始位置。

      log2:返回参数以2为底的对数。如log2(64);->6

      log10:返回参数以10为底的对数。

      lpad:参数3的值填充在参数1的左侧,直到该值的总长度等于参数2的长度。如果最大长度小于参数1的长度,则参数1在左侧被截取。如lpad('data',6,'base');->'badata'。lpad('data',2,'base');->'da'。

      ltrim:该函数删除出现在参数前的所有空白,rtrim表示删除参数末尾的所以空白。

      makedate:参数2表示天数,他们被添加到参数1中。如makedate(2009,10);->'2009-01-10'。

      maketime:三参数分别表示小时,分钟,秒钟。其中分钟和秒钟必须在0~59之间,否则会返回null。

      mid:该函数提取参数1中的部分字符串值,参数2标识开始位置,参数3标识字符数。如mid('database',5);->'base'。mid('database',5,2);->'ba'。mid('database',-6);-> 'tabase'。mid('database',-6,3);->'tab'。

      minute:该函数从一个时间或时间戳表达式中返回分钟数。

      mod:该函数返回两参数相除的余数。如mod(15.4,4,4);->2.2

      month:返回时间戳中的月份数,值介于1~12之间。

      monthname:该函数从一个日期或时间戳表达式中返回月的名称。如monthname('2009-01-01');->‘April’。

      now:返回系统日期和时间。

      nullif:如果参数1的值等于参数2的值,那么函数返回null。否则返回参数1的值。

      oct:该函数返回八进制参数1的十进制数。如oct(8);->10

      ord:该函数返回参数指定的字符串表达式的第一个字符的字符集位置。如ord('Das');->68。

      period_add:该函数将月数添加到一个指定的日期,日期格式必须为YYYYMM或YYMM。结果格式为YYYYMM。如period_add('200901',3);->200904。

       period_diff:该函数返回两个日期间的月数。如period_diff('200908','200901');->7

       PI:返回圆周率。

       power:返回参数1的参数2次幂。

       quarter:该函数从一个日期或时间戳表达式中返回季度值。结果的值总是介于1~4之间。不过和我们日常生活中的季度不同1~3月为1,4~6月为2,7~9月为3,10~12月为4。

       rand:该函数返回0.0和1.0之间的一个随机数。参数表示下一个随机值的计算起点。使用相同的参数值重复调用该函数,结果总是相同的。如cast(rand()*1000 as unsigned integer);

       repeat:该函数将参数1的值重复参数2给定的次数。

       replace:该函数使参数1指定的字符串中由参数2指定的值替换为参数3指定的值。如replace('data','a','e');->'dete'。

       reverse:该函数颠倒一个字符串值中的字符的顺序。

       right:该函数返回参数1的右侧部分。该部分长度由第二个参数指定。

       round:该函数将一个数字的精度舍入到指定的位数。如round(123.4,-1);->100;round(183.4,-2);->200。

       rpad:将参数3的值填充到参数1的右侧,知道值的总长度等于参数2指定的长度,与lpad相对。rpad('data',2,'base')->'da'。

       second:该函数返回一个时间或时间戳表达式中的秒数。

       sec_to_time:该函数将秒数变换为时间。如sec_to_time((24*60*60)-1);->23:59:59

       sign:该函数返回一个数值的字符。sign(50);->1;sign(0)->0;sign(-50)->-1;

       space:该函数生成一个空格行,空格个数为参数指定的值。

       sqrt:返回参数的平方根值。

       strcmp:该函数比较两个字符串表达式的值。如果参数值相等,那么结果为0,如果参数1的值较小,那么返回-1,否则结果为1。

       substring:该函数从参数1中减去部分字符串值,参数2给出起始点,参数3给出子付数。如substring('database',5,2);->'ba'。

       substring_index:该函数查找参数2表示的值在参数1中的第参数3此出现。如果参数3为正表示从左侧查找,返回从左侧开始找到的该次出现。如果参数3为负,则从右侧开始查找。如substring_index('database','a',3);->'datab';substring_index('database','a',-3);->'tabase';substring_index('database','data',1);->'';substring_index('database','data',-1);->'base'  
   
       subtime:该函数对两个时间表达式执行相减操作并返回一个新时间,timediff与此函数功能相似。

       time:该函数返回一个时间或时间戳表达式的时间部分。如time('12:13');->12:13:00

       time_to_sec:该函数将时间变换为秒数。如time_to_sec('00:16:40');->1000

       timestampdiff:该函数计算两个日期或时间戳表达式间的时间。参数1表示时间间隔单元,如day,month,year,quarter,week,hour,minute,second,frac_second,参数2和参数3形成两个表达式。如timestampdiff(day,'2009-01-01','2009-01-04');->4.

       timestamp:该函数将参数1变换为一个时间戳,如果指定了参数2,则它应该是一个时间表达式,且会被添加到参数1的值中。

       timestampadd:该函数将时间间隔添加到一个日期或时间戳表达式。参数1表示时间间隔的单元,参数2表示天数或月数等,参数3表示时间间隔添加到的表达式。如timestampadd(DAY,2,'2009-01-01');->'2009-01-03';timestampadd(MONTH,2,'2009-01-01');->"2009-03-01"。

       trim:该函数删除参数1表示的字符串值中开始和最后的所有空格。

       truncate:该函数将数字截断到指定的小数位数,注意和round的区别,round是四舍五入,而truncate是截断。如truncate(123.45,-1);->120。truncate(123.375,1);->123.3。

       unhex:与hex相对,将十六进制表示的参数转换为相应的字符。如unhex(hex('hello'))'->hello

       ucase:类似upper,都是将参数中的所有小写字母转换为大写字母。

       week:该函数从一个日期或时间戳表达式中返回周数,类似的函数还有weekofyear。结果介于1~53之间的一个整数。如week('2009-06-07');->23

       weekday:该函数返回一周中的天数。结果为介于0~6之间的数。0表示星期一。

       year:该函数从一个日期或时间戳表达式中返回年数。
       yearweek:如果指定参数1,则该函数从一个时间戳或日期表达式中返回格式为YYYYWW的年份及周数。周数的范围为01~52之间。如yearweek('2009-07-06');->200927
1
0
分享到:
评论

相关推荐

    大数据之flink教程-TableAPI和SQL.pdf

    - **UDF(用户自定义函数)**:用户可以注册自己的函数,包括标量函数、表函数、聚合函数和表聚合函数,以满足特定需求。 总结来说,Flink的Table API和SQL提供了灵活且强大的批流统一处理能力,通过简单的API调用...

    一个对SQL2005数据库后台函数、过程、视图有效性验证的类库代码

    用户自定义函数可以是标量函数(返回单个值)或表值函数(返回结果集)。 2. **过程**:存储过程是预编译的SQL语句集合,它可以包含控制流程语句,如`IF-ELSE`、`WHILE`等,允许执行复杂的逻辑。存储过程可以接受...

    SQLServer2008数据库基础入门教程含思考题练习题 第11章 存储过程 触发器和函数 共62页.ppt

    用户定义函数分为标量函数、表值函数和聚合函数。创建用户定义函数使用`CREATE FUNCTION`语句,定义函数名、返回类型、输入参数(如果有)以及函数体。执行用户定义函数就像调用任何其他内置函数一样,在查询中直接...

    AL.SqlAPI:这是一个库,可轻松从AL访问和管理SQL脚本。 (仅OnPremOnly)

    SQLAPI KontrolleüberSQL Server适用于Dynamcis 365商业中心。 功能列表 Sql-Server-Verbindungen...标量函数 参数Unterstützung 自动化参数设置 执行协议Paramenter werden auch protokolliert。 奥地利法律法规。

    ANSI/ISO/IEC International Standard(IS) Database Language SQL Part 5 Host Language Bindings (SQL Bindings)

    3. **SQL调用例程(SQL-invoked routines)**:描述了可以在SQL语句中调用的过程或函数。 4. **定位器(Locators)**:用于标识特定数据记录的指针或句柄。 5. **游标(Cursors)**:一种机制,用于在查询结果集中...

    langousterudf

    UDF分为几种类型,包括标量函数、聚合函数和表值函数。标量函数返回单个值,如数学或字符串操作;聚合函数处理一组值并返回单个汇总结果,例如SUM或COUNT;表值函数则返回一个结果集。 创建UDF通常涉及以下步骤: ...

    Delphi有关SQL Server的存储过程解密源码.rar

    SQL Server中的用户定义函数(UDF)可以是标量型或表值型,它们可以像常规SQL函数一样在查询中使用。解密函数代码的过程与解密存储过程类似,可能需要对系统表进行查询以获取未加密的函数定义。 7. **示例程序和...

    Sybase IQ 16.0中文版本 用户定义的函数

    #### 声明和定义用户定义的标量函数 声明标量UDF时,需要指定输入参数类型、返回类型等信息。定义则涉及具体实现逻辑。 #### 声明和定义集合UDF 集合UDF的声明和定义更为复杂,因为它涉及处理多行或多列数据。...

    MYSQL_UDF 5.0.rar

    - **UDF类型**:UDFs可以分为两种类型——标量函数(Scalar UDFs)和聚合函数(Aggregate UDFs)。标量函数接收一定数量的参数,返回单个值;聚合函数则在一组值上操作,如SUM或AVG。 - **生命周期**:UDF有三个...

    MYSQL_UDF-5.0.rar_mysql udf_udf_udf mysql

    在MySQL中,UDF可以分为几种类型,包括标量函数、聚合函数和表值函数。标量函数返回单个值,如数学运算或字符串操作;聚合函数处理一组行并返回单个值,如SUM或COUNT;而表值函数则返回一个结果集。 在描述中提到的...

    PL/SQL存储过程编程

    3. **OCI (Oracle Call Interface)**: OCI是Oracle提供的C语言API,用于访问Oracle数据库。它提供了非常低级别的访问接口,因此更加灵活但同时也更复杂。由于其较低级别的特性,通常不被广泛使用。 4. **SQLJ (SQL ...

    OTL(Oracle, Odbc and DB2-CLI Template Library)技术应用

    PL/SQL块同样可处理标量输入和矢量输出。 OTL“流”采用缓存机制,分为输入和输出两个独立缓存。数据通过C++风格的流操作符“”和“>>”进行传递,流操作中可能出现的异常由otl_exception类处理,需要使用try-catch...

    神通数据库文档.pdf

    在JDBC中,还有各种标量函数的使用方法,以及数据源的使用方法。最后,本手册还提供了两个应用实例程序,分别对应于单线程和多线程。 在阅读本手册时,可以参考神通数据库的手册集,手册集包含《神通数据库安装手册...

    HibernateAPI中文版.chm

    16.1.1. 标量查询(Scalar queries) 16.1.2. 实体查询(Entity queries) 16.1.3. 处理关联和集合类(Handling associations and collections) 16.1.4. 返回多个实体(Returning multiple entities) 16.1.5. 返回非...

    IBM ZOS

    - **内置标量函数支持**:提供与Oracle兼容的内置函数,用于数据处理和数学运算。 - **例程、过程和函数**:支持创建与Oracle兼容的过程和函数,以满足特定的应用需求。 综上所述,IBM ZOS下的DB2迁移指南涵盖了...

    UDF手册,udf手册2020,C,C++源码.zip

    1. **接口设计**:理解数据库系统提供的API,如函数原型、参数传递和返回值。 2. **数据类型映射**:数据库系统内部的数据类型可能与C/C++不同,需要进行适当的转换。 3. **错误处理**:确保UDF能够正确处理各种异常...

    MATLAB读入数据的几种方式探讨

    7. **网络数据源**:MATLAB还支持从Web服务(如RESTful API)获取数据,可以使用`webread`函数。对于XML和JSON格式的数据,MATLAB有相应的解析工具。 8. **图像数据读取**:对于图像文件,MATLAB提供了如`imread`和...

    sqlalchemy documentation sqlalchemy 文档

    - **API文档** 非常详细,涵盖了所有可用的函数、类、方法等。 - 对于希望深入了解API细节的开发者来说非常有用。 #### 1.5 安装SQLAlchemy - **安装方式** 简单明了,可以通过pip等工具完成安装。 - 示例命令:`...

    基于原生PHP7.4编写的动态博客系统,大二PHP动态网页设计期末作品,包含SQL脚本与数据库文件。.zip

    近年来,PHP持续进行性能改进与新特性的引入,如PHP 7系列版本在速度上有了显著提升,新增了类型声明、标量类型提示、null合并运算符等语法特性,进一步提升了开发效率和代码质量。 总的来说,PHP作为一种成熟的Web...

Global site tag (gtag.js) - Google Analytics