SQL SERVER函数

一、字符转换函数

1、ASCII()

返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘'括起来,但含其它字符的字符串必须用‘'括起来使用,否则会出错。

2、CHAR()

将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。

3、LOWER()和UPPER()

LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

4、STR()

把数值型数据转换为字符型数据。

STR (<float_expression>[,length[, <decimal>]])

length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;

当length 小于小数点左边(包括符号位)的位数时,返回length 个*;

先服从length ,再取decimal ;

当返回的字符串位数小于length ,左边补足空格。

二、去空格函数

1、LTRIM() 把字符串头部的空格去掉。

2、RTRIM() 把字符串尾部的空格去掉。

三、取子串函数

1、left()

LEFT (<character_expression>, <integer_expression>)

返回character_expression 左起 integer_expression 个字符。

2、RIGHT()

RIGHT (<character_expression>, <integer_expression>)

返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()

SUBSTRING (<expression>, <starting_ position>, length)

返回从字符串左边第starting_ position 个字符起length个字符的部分。

四、字符串比较函数

1、CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。

CHARINDEX (<'substring_expression'>, <expression>)

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。

此函数不能用于TEXT 和IMAGE 数据类型。

2、PATINDEX()

返回字符串中某个指定的子串出现的开始位置。

PATINDEX (<'%substring _expression%'>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。

五、字符串操作函数

1、QUOTENAME()

返回被特定字符括起来的字符串。

QUOTENAME (<'character_expression'>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。

2、REPLICATE()

返回一个重复character_expression 指定次数的字符串。

REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。

3、REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。

4、REPLACE()

返回被替换了指定子串的字符串。

REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。

4、SPACE()

返回一个有指定长度的空白字符串。

SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。

5、STUFF()

用另一子串替换字符串指定位置、长度的子串。

STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)

如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。

如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

六、数据类型转换函数

1、CAST()

CAST (<expression> AS <data_ type>[ length ])

2、CONVERT()

CONVERT (<data_ type>[ length ], <expression> [, style])

1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。

2)length用于指定数据的长度,缺省值为30。

3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。

4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。

5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。

6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。

7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。

8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。

9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。

七、日期函数

1、day(date_expression)

返回date_expression中的日期值

2、month(date_expression)

返回date_expression中的月份值

3、year(date_expression)

返回date_expression中的年份值

4、DATEADD()

DATEADD (<datepart>, <number>, <date>)

返回指定日期date 加上指定的额外日期间隔number 产生的新日期。

5、DATEDIFF()

DATEDIFF (<datepart>, <date1>, <date2>)

返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。

6、DATENAME()

DATENAME (<datepart>, <date>)

以字符串的形式返回日期的指定部分此部分。由datepart 来指定。

7、DATEPART()

DATEPART (<datepart>, <date>)

以整数值的形式返回日期的指定部分。此部分由datepart 来指定。

DATEPART (dd, date) 等同于DAY (date)

DATEPART (mm, date) 等同于MONTH (date)

DATEPART (yy, date) 等同于YEAR (date)

8、GETDATE()

以DATETIME 的缺省格式返回系统当前的日期和时间。

内部合计函数

1)COUNT(*) 返回行数

2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数

3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;

4)SUM(DISTINCT COLNAME) 返回指定列中唯一值的和

5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值

6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值

7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值

8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值

一、内部函数

1、内部合计函数

1)COUNT(*) 返回行数

2)COUNT(DISTINCT COLNAME)返回指定列中唯一值的个数

3)SUM(COLNAME/EXPRESSION)返回指定列或表达式的数值和;

4)SUM(DISTINCT COLNAME) 返回指定列中唯一值的和

5)AVG(COLNAME/EXPRESSION)返回指定列或表达式中的数值平均值

6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值

7)MIN(COLNAME/EXPRESSION)返回指定列或表达式中的数值最小值

8)MAX(COLNAME/EXPRESSION)返回指定列或表达式中的数值最大值

2、日期与时间函数

1)DAY(DATE/DATETIME EXPRESSION)返回指定表达式中的当月几号

2)MONTH(DATE/DATETIME EXPRESSION) 返回指定表达式中的月份

3)YEAR(DATE/DATETIME EXPRESSION)返回指定表达式中的年份

4)WEEKDAY(DATE/DATETIME EXPRESSION) 返回指定表达式中的当周星期几

5)DATE(NOT DATE EXPRESSION)返回指定表达式代表的日期值

6)TODAY 返回当前日期的日期值

7)CURRENT[FIRST TO LAST] 返回当前日期的日期时间值

8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定单位数

9)MDY(MONTH,DAY,YEAR) 返回标识指定年、月、日的日期值

10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的日期时间值

11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表达式代表的时间间隔值

12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回经过调整的日期或日期时间值

To_char函数将datetime和date值转化为字符值。

To_date函数将字符值转化为datetime类型的值。例to_date(“1978-10-07 10:00” ,”%Y-%m-%d %H:%M)

例子1、和UNITS合用,指定日期或时间单位(year,month,day,hour,minute,seond,fraction):

let tmp_date = today + 3 UNITS day

例子2、let tmp_date = MDY(10,30,2002) -- 2002-10-30

例子3、let tmp_date = today + interval(7) day to day --当前时间加上7天;

注:该功能与1相似;

例子4、EXTEND转换日期或日期时间值

let tmp_inthour = extend(datetime1,hour to hour)

3、代数函数

1)ABS(COLNAME/EXPRESSION): 取绝对值

2)MOD(COLNAME/EXPRESSION,DIVISOR) 返回除以除数后的模(余数)

3)POW(COLNAME/EXPRESSION,EXPONENT) 返回一个值的指数冥

例子:let tmp_float = pow(2,3) --8.00000000

4)ROOT(COLNAME/EXPRESSION,[INDEX]) 返回指定列或表达式的根值

5)SQRT(COLNAME/EXPRESSION)返回指定列或表达式的平方根值

6)ROUND(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表达式的圆整化值

7)TRUNC(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表达式的截尾值

说明:上两者中FACTOR指定小数位数,若不指定,则为0;若为负数,则整化到小数点左边;

注:ROUND是在指定位上进行4舍5入;TRUNC是在指定位上直接截断;

let tmp_float = round(4.555,2) --4.56

let tmp_float = trunc(4.555,2) --4.55

4、指数与对数函数

1)EXP(COLNAME/EXPRESSION)返回指定列或表达式的指数值

2)LOGN(COLNAME/EXPRESSION)返回指定列或表达式的自然对数值

3)LOG10(COLNAME/EXPRESSION)返回指定列或表达式的底数位10的对数值

5、三角函数

1)COS(RADIAN EXPRESSION)返回指定弧度表达式的余弦值

2)SIN(RADIAN EXPRESSION)正弦

3)TAN(RADIAN EXPRESSION)正切

4)ACOS(RADIAN EXPRESSION)反余弦

5)ASIN(RADIAN EXPRESSION)反正弦

6)ATAN(RADIAN EXPRESSION)反正切

7)ATAN2(X,Y) 返回坐标(X,Y)的极坐标角度组件

6、统计函数

1)RANGE(COLNAME) 返回指定列的最大值与最小值之差 = MAX(COLNAME)-MIN(COLNAME)

2)VARIANCE(COLNAME) 返回指定列的样本方差;

3)STDEV(COLNAME) 返回指定列的标准偏差;

7、其它函数

1)USER 返回当前用户名

2)HEX(COLNAME/EXPRESSION)返回指定列或表达式的十六进制值

3)LENGTH(COLNAME/EXPRESSION)返回指定字符列或表达式的长度

4)TRIM(COLNAME/EXPRESSION)删除指定列或表达式前后的字符

5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回并在一起的字符;

8、基数函数:

1)cardinality(仅适用IDS)函数对集合包含的元素数目计数。

智能大对象函数,(仅适用与IDS)

filetoblob( ),将文件复制到BLOB列中

filetoclob( ),将文件复制到CLOB列中

locopy( ),将BLOB或CLOB类型的数据复制到另一个BLOB或CLOB列中

lotofile( ),将BLOB或CLOB复制到文件中

9、字符串处理函数:

lower,将字符串中每个大写字母转换为小写字母

upper,将字符串中每个小写字母转换为大写字母

initcap,将字符串中每个词的首写字母转换成大写

replace,将字符串中的某一组字符转换成其它字符,例replace(col,”each”,”eve”)

substr,返回字符串中的某一部分,例substr(col,1,2)

substring,返回字符串中的某一部分,例substring(col,from 1 to 4)

lpad,使用lpad函数已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。

举例:字段 col 为char(15)类型,select lpad(col,21,”_”) from tab_name则显示为在col前加上六个_。

Rpad,使用rpad函数已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的副本,这取决于字符串中填充部分的指定长度。

举例:字段col为char(15)类型,select rpad(col,21,”_”) from tab_name则显示为在col后边加上六个_。

10、其它函数:

hex,返回表达式的十六进制数

round,返回表达式的四舍五入值

trunc,返回表达式的截断值

length,计算表达式的长度

user,返回执行查询的用户的用户名(登陆帐户名)

today,返回当前系统日期

dbservername,返回数据库服务器的名称,同sitename

dbinfo,返回数据库的相关信息

decode,函数来将一个具有一个值的表达式转换为另一个值

decode(test,a,a_value,b,b_value,c,c_value……),decode函数不支持TEXT和BYTE类型。

Nvl,来将求值为空的表达式转化为另一个想要指定的值。

另外还可以在select语句中使用存储过程,如select spl($test) from tab_name

二、IDS内部函数

1、DBSERVERNAME 返回数据库服务器名 let tmp_char=DBSERVERNAME

2、SITENAME 返回数据库服务器名 let tmp_char=SITENAME

说明:两者功能相同;

3、DBINFO(‘SPECIAL_KEYWORD') 返回只关键字值

例子1:返回数据中每个表的DBSPACE名称

select dbinfo('dbspace',partnum),tabname from systables

where tabid>99 and tabtype='T' (OK)

例子2:返回任何表中插入的最后一个SERIAL值

select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1

例子3:返回最后一个SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE语句处理的行数;

select dbinfo('sqlca.sqlerrd2') from systables where tabid=1;

三、其它

本函数库共有 38 个函数

目前支持的 Informix 版本为 ODS 7.x、SE 7.x 与 Universal Server (IUS) 9.x 三种。在 ODS 7.x 的版本中,完全支持所有的数据类型,而在 IUS 9.x 中,不支持 SLOB 与 CLOB 二种类型。

要在 Web Server 上安装 Informix Client 端,在编译 PHP 之前 (configure 之前),要先设好 IFX_LIBDIR、IFX_LIBS 及 IFX_INCDIR 三种环境变量,若是 9.x 版尚要配置 HAVE_IFX_IUS 环境变量。同时在配置时要加入 --with_informix=yes 的选项。

ifx_connect: 打开 Informix 服务器连接。

ifx_pconnect: 打开 Informix 服务器持续连接。

ifx_close: 关闭 Informix 服务器连接。

ifx_query: 送出一个 query 字符串。

ifx_prepare: 准备 query 字符串。

ifx_do: 执行已准备 query 字符串。

ifx_error: 取得 Informix 最后的错误。

ifx_errormsg: 取得 Informix 最后错误信息。

ifx_affected_rows: 得到 Informix 最后操作影响的列数目。

ifx_getsqlca: 取得 query 后的 sqlca 信息。

ifx_fetch_row: 返回单列的各字段。

ifx_htmltbl_result: 将 query 返回数据转成 HTML 表格。

ifx_fieldtypes: 列出 Informix 的 SQL 字段。

ifx_fieldproperties: 列出 Informix 的 SQL 字段属性。

ifx_num_fields: 取得返回字段的数目。

ifx_num_rows: 取得返回列的数目。

ifx_free_result: 释放返回占用内存。

ifx_create_char: 建立字符类。

ifx_free_char: 删除字符类。

ifx_update_char: 更改字符类。

ifx_get_char: 取得字符类。

ifx_create_blob: 建立长位类。

ifx_copy_blob: 复制长位类。

ifx_free_blob: 删除长位类。

ifx_get_blob: 取得长位类。

ifx_update_blob: 更改长位类。

ifx_blobinfile_mode: 配置长位类模式。

ifx_textasvarchar: 配置文字模式默认值。

ifx_byteasvarchar: 配置位组模式默认值。

ifx_nullformat: 配置空字符模式默认值。

ifxus_create_slob: 建立 slob 类。

ifx_free_slob: 删除 slob 类。

ifxus_close_slob: 删除 slob 类。

ifxus_open_slob: 打开 slob 类。

ifxus_tell_slob: 返回目前文件或找寻位置。

ifxus_seek_slob: 配置目前文件或找寻位置。

ifxus_read_slob: 读取指定数目的 slob 类。

ifxus_write_slob: 将字符串写入 slob 类中。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 452评论 0 3
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,346评论 0 20
  • 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII码值。在ASCII()函数中,纯数字的字...
    辉格食品阅读 1,622评论 0 3
  • 今天达成了“阅读《孤独的人,你要吃饱》”的成就。那么,就来说说这本书吧。 买这本书的时候,我正处于一个可以说挺痛苦...
    在下京墨阅读 450评论 0 1