当前位置:文档之家› sql_函数大全_比较常用的一些函数整理

sql_函数大全_比较常用的一些函数整理

sql_函数大全_比较常用的一些函数整理
sql_函数大全_比较常用的一些函数整理

sql 函数大全比较常用的一些函数整理

select语句中只能使用sql函数对字段进行操作(链接sql server),

select 字段1 from 表1 where 字段1.IndexOf("云")=1;

这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()是sql函数。

select 字段1 from 表1 where charindex('云',字段1)=1;

字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。

常用的字符串函数有:

一、字符转换函数

1、ASCII()

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

2、CHAR()

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

3、LOWER()和UPPER()

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

4、STR()

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

STR ([,length[, ]])

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 个字符。

2、RIGHT()

RIGHT ()

返回character_expression 右起 integer_expression 个字符。

3、SUBSTRING()

SUBSTRING (, length)

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

四、字符串比较函数

1、CHARINDEX()

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

CHARINDEX (<'substring_expression'>, )

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

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

2、PATINDEX()

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

PATINDEX (<'%substring _expression%'>, )其中子串表达式前后必须有百分号“%”否则返回值为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 可以是字符串、常数或一个列的值。

4、REPLACE()

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

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

4、SPACE()

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

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

5、STUFF()

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

STUFF (

)

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

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

六、数据类型转换函数

1、CAST()

CAST ( AS [ length ])

2、CONVERT()

CONVERT ([ length ], [, 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 ()

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

5、DATEDIFF()

DATEDIFF ()

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

6、DATENAME()

DATENAME ()

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

7、DATEPART()

DATEPART ()

以整数值的形式返回日期的指定部分。此部分由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 类中。

整理的SQL常用函数

create table test (id int, value varchar(10)) insertinto test values('1','aa') insertinto test values('1','bb') insertinto test values('2','aaa') insertinto test values('2','bbb') insertinto test values('2','ccc') insertinto test values('3','aa') insertinto test values('4','bb') select*from test select id, [values] =stuff((select','+ [values] from test t where id = test.id forxmlpath('')), 1 , 1 ,'') from test groupby id stuff(param1,startIndex,length, param2) 说明:将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。*/

COUNT()函数用于返回一个列内所有非空值的个数,这是一个整型值。 由于COUNT(*)函数会忽略NULL值,所以这个查询的结果是2。 三、SUM()函数 SUM()函数是最常用的聚合函数之一,它的功能很容易理解:和AVG()函数一样,它用于数值数据类型,返回一个列范围内所有非空值的总和。 四、CAST()函数 CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。 以下例子用于将文本字符串'123'转换为整型: SELECT CAST('123' AS int) 返回值是整型值123。 如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢? SELECT CAST('123.4' AS int) CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作。由于123.4不能用int数据类型来表示,所以对这个函数调用将产生一个错误。 Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value '123.4' to a column of data type int. 在将varchar值'123.4' 转换成数据类型int时失败。 要返回一个合法的数值,就必须使用能处理这个值的数据类型。对于这个例子,存在多个可用的数据类型。如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal 值的精度与小数位数。在本例中,精度与小数位数分别为9与2。精度是总的数字位数,包括小数点左边和右边位数的总和。而小数位数是小数点右边的位数。这表示本例能够支持的最大的整数值是9999999,而最小的小数是0.01。 SELECT CAST('123.4' AS decimal(9,2)) decimal数据类型在结果网格中将显示有效小数位:123.40 精度和小数位数的默认值分别是18与0。如果在decimal类型中不提供这两个值,SQL Server 将截断数字的小数部分,而不会产生错误。 SELECT CAST('123.4' AS decimal) 结果是一个整数值:123 五、CONVERT()函数 对于简单类型转换,CONVERT()函数和CAST()函数的功能相同,只是语法不同。 CAST()函数一般更容易使用,其功能也更简单。 CONVERT()函数的优点是可以格式化日期和数值,它需要两个参数:第1个是目标数据类型,第2个是源数据。 CONVERT()函数还具有一些改进的功能,它可以返回经过格式化的字符串值,且可以把日期值格式化成很多形式。有28种预定义的符合各种国际和特殊要求的日期与时间输出格式。 六、STR()函数 这是一个将数字转换为字符串的快捷函数。这个函数有3个参数:数值、总长度和小数位数。如果数字的整数位数和小数位数(要加上小数点占用的一个字符)的总和小于总长度,对结果中左边的字符将用空格填充。在下面第1个例子中,包括小数点在内一共是5个字符。结果

DB2_SQL常用函数

DB2函数大全 函数名函数解释函数举例 AVG() 返回一组数值的平均值. SELECTAVG(SALARY)FROMBSEMPMS; CORR(),CORRELATION() 返回一对数值的关系系数. SELECT CORRELATION(SALARY,BONUS)FROM BSEMPMS; COUNT() 返回一组行或值的个 数.SELECTCOUNT(*)FROMBSEMPMS; COVAR(),COVARIANCE() 返回一对数值的协方差. SELECTCOVAR(SALARY,BONUS)FROMBSEMPMS; MAX() 返回一组数值中的最大值. SELECTMAX(SALARY)FROMBSEMPMS; MIN() 返回一组数值中的最小值. SELECTMIN(SALARY)FROMBSEMPMS; STDDEV() 返回一组数值的标准偏差. SELECTSTDDEV(SALARY)FROMBSEMPMS; SUM() 返回一组数据的和. SELECTSUM(SALARY)FROMBSEMPMS; VAR(),VARIANCE() 返回一组数值的方差. SELECTVARIANCE(SALARY)FROMBSEMPMS; ABS(),ABSVAL() 返回参数的绝对值. SELECTABS(-3.4)FROMBSEMPMS; ACOS() 返回参数的反余弦值. SELECTACOS(0.9)FROMBSEMPMS; ASCII() 返回整数参数最左边的字符的ASCII码. SELECTASCII('R')FROMBSEMPMS; ASIN() 返回用弧度表示的角度的参数的反正弦函数. SELECTASIN(0.9)FROMBSEMPMS; ATAN() 返回参数的反正切值,该参数用弧度表示的角度的参数. SELECTATAN(0.9)FROMBSEMPMS; ATAN2() 返回用弧度表示的角度的X和Y坐标的反正切值. SELECTATAN2(0.5,0.9)FROMBSEMPMS;

sql常用函数instr()和substr()

在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。 其语法为: instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceString代表源字符串; destString代表想聪源字符串中查找的子串; start代表查找的开始位置,该参数可选的,默认为1; appearPosition代表想从源字符中查找出第几次出现的destString,该参数也是可选的,默认为1; 如果start的值为负数,那么代表从右往左进行查找,但是位置数据仍然从左向右计算。 返回值为:查找到的字符串的位置。 对于instr函数,我们经常这样使用:从一个字符串中查找指定子串的位置。例如:SQL> select instr('yuechaotianyuechao','ao') position from dual; POSITION ---------- 6 从第7个字符开始搜索 SQL> select instr('yuechaotianyuechao','ao', 7) position from dual; POSITION ---------- 17 从第1个字符开始,搜索第2次出现子串的位置 SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual; POSITION ---------- 17 注意:1。若‘起始位置’=0 时返回结果为0, 2。这里只有三个参数,意思是查找第一个要查找字符的位置(因为‘第几次出现’默认为1), 当‘起始位置’不大于要查找的第一个字符的位置时,返回的值都将是第一个字符的位置,如果‘起始位置’大于要查找的第一个字符的位置时,返回的值都将是第2个字符的位置,依此类推……(但是也是以第一个字符开始计数)

plsql常用函数

PLSQL常用函数 1)处理字符的函数 || CONCAT ---并置运算符。 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ABC’,’DE’) =’ABCDE’ INSTR---搜索子串位置 格式∶INSTR(STRING , SET[ , 开始位置[ , 出现次数]]) 例∶ INSTR (‘this is a test’ , ‘i’ , 1,2)=6 LENGTH----计算串长 格式∶ LENGTH(string) LTRIM,RTRIM,TRIM -----左截断,右截断,左右截断。默认为删除空格。 格式∶ LTRIM(STRING[,‘SET’]) 例∶ LTRIM(‘***tes*t***’,’*’)=’tes*t***’ LOWER----将字符串转换为小写 格式∶LOWER(string) UPPER---将字符串转换为大写 格式∶UPPER(string) SUBSTR----提取子串。START为正数时从左开始、为负数时从右开始 格式∶ SUBSTR(STRING , START [ , COUNT]) 例∶ SUBSTR(‘WORDSTAR’ , 2 , 3)=’ ORD’ REPLACE---搜索指定字符串并替换 格式∶REPLACE(string , substring , replace_string) 例∶ REPLACE(‘this is a test’ , ‘this’ , ‘that an’)=’that an is a test’

2)处理数字的函数 ROUND---返回固定小数位数。 格式∶ROUND (value)value为数字 例∶ROUND (66.123,2)= 66.12 CELL---返回大于等于特定值的最小整数 格式∶CELL(value) 例∶ CELL(-10,9)= -10 3)处理日期 SYSDATE---系统时间。精确至秒 例:TO_CHAR(SYSDATE,'YYYY-MM-DD') 2011-05-11(返回日期) TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') 2011-05-11 11:05:15(返回日期+时间) 常用日期数据格式 Y或YY或YYY 年的最后一位,两位或三位Select to_char(sysdate,’YYY’) from dual; SYEAR或YEAR SYEAR使公元前的年份前加一负号Select to_char(sysdate,’SYEAR’) from dua l;-1112表示公元前111 2年 Q 季度,1~3月为第一季度Select to_char(sysdate,’Q’) from dual;2表示第二季度① MM 月份数Select to_char(sysdate,’MM’) from dual;12表示12月 RM 月份的罗马表示Select to_char(sysdate,’RM’) from dual;IV表示4月 Month 用9个字符长度表示的月份名Select to_char(sysdate,’Month’) from dual;May后跟6个空格表示5月 WW 当年第几周Select to_char(sysdate,’WW’) from dual;24表示2002年6月13日为第24周W 本月第几周Select to_char(sysdate,’W’) from dual;2002年10月1日为第1周 DDD 当年第几, 1月1日为001,2月1日为032 Select to_char(sysdate,’DDD’) from dual;36 3 2002年1 2月2 9日为第363天 DD 当月第几天Select to_char(sysdate,’DD’) from dual;04 10月4日为第4天 D 周内第几天Select to_char(sysdate,’D’) from dual;5 2002年3月14日为星期一 DY 周内第几天缩写Select to_char(sysdate,’DY’) from dual;SUN 2002年3月24日为星期天

数据库常用函数

数据库常用函数

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份和还原 备份:exp dsscount/sa@dsscount owner=dsscount file=C:\dsscount_data_backup\dsscount.dmp log=C:\dsscount_data_backup\outputa.log 还原:imp dsscount/sa@dsscount file=C:\dsscount_data_backup\dsscount.dmp full=y ignore=y log=C:\dsscount_data_backup\dsscount.log statistics=none 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) CREATE TABLE ceshi(id INT not null identity(1,1) PRIMARY KEY,NAME VARCHAR(50),age INT) id为主键,不为空,自增长 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

SQL常用语句及函数方法

1、通常用到的字符串转日期格式 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

mssql常用函数

MS SQL 常用函数 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用…?括起来,但含其它字符的字符串必须用…?括起来使用,否则会出错。 2、CHAR() 将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL 。 3、LOWER()和UPPER() LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。 4、STR() 把数值型数据转换为字符型数据。 STR ([,length[,]]) 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个字符。

2、RIGHT() RIGHT () 返回character_expression右起integer_expression个字符。 3、SUBSTRING() SUBSTRING (,length) 返回从字符串左边第starting_ position 个字符起length个字符的部分。 四、字符串比较函数 1、CHARINDEX() 返回字符串中某个指定的子串出现的开始位置。 CHARINDEX () 其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。 此函数不能用于TEXT 和IMAGE 数据类型。 2、PATINDEX() 返回字符串中某个指定的子串出现的开始位置。 PATINDEX ()其中子串表达式前后必须有百分号“%”否则返回值为0。 与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于 CHAR、VARCHAR 和TEXT 数据类型。 五、字符串操作函数 1、QUOTENAME() 返回被特定字符括起来的字符串。 QUOTENAME ([,quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。 2、REPLICATE()

SQL常用函数,整理

一数学函数 1,求绝对值ABS() 2,求指数POWER(x,y); 3,求平方根SQRT() select FWeight, SQRT(FWeight) from t_person; 4 求随机数 A,mysql RAND()select rand(); B,sqlserver rand() ,rand(x); select rand(), select rand(9527)支持种子 5舍入到最大整数Ceiling() select FWeight, ceiling(FWeight), ceiling(FWeight * -1) from t_person; 6舍入到最小整数floor() 7,四舍五入round(m,d) m为四舍五入的数值,d为计算精度(特别地d还可以为负值)如36.63精度-1为40 Round(m)为m值0精度 8求正弦值sin(m); select sin(1) from t_person 求余弦值cos(m); 求返正弦值asin(m); 求反余弦acos(m); 9求正切值tan(m) 反正切atan(m) 求余切cotm() 10求圆周率PI(); 11.弧度转换为角度degrees(m);角度转换为弧度制radians() 12求符号sign();(符号函数) 13 求整除余数mod(m,d);m为除数d 为被除数(sqlserver中直接用%)14,求自然对数LOG(m); 求10为底得对数LOG10(); 二字符串函数 1 计算字符串长度length(m); select length(FName) from t_person Sqlserver中为len(); 2字符串转换为小写Lower(m) 字符串转换为大写UPPER(m) 3截去字符串左侧空格ltrim(m); 截去字符串右侧空白rtrim(m); 截去字符串两侧空白trim(m) 5取子字符串substring(string,start_position,length); 6计算子字符串的位置instr(string, substring);若不存在子字符串则返回0 7从左侧开始取字符串Left(string, length); 从右侧开始取字符串Right(string, length); 8字符串替换replace(string,string_tobe_replace, string_to_replace); 9得到字符的ASCII码ASCII(m)如果参数为字符串则返回第一个字符的Ascii 码

MSSQL常用函数及技巧

--聚合函数 use pubs go select avg(distinct price)--算平均数 from titles where type='business' go use pubs go select max(ytd_sales)--最大数 from titles go use pubs go select min(ytd_sales)--最小数 from titles go use pubs go select type,sum(price),sum(advance)--求和 from titles group by type order by type go use pubs go select count(distinct city)--求个数 from authors go use pubs go select stdev(royalty)--返回给定表达式中所有值的统计标准偏差from titles go use pubs go select stdevp(royalty)--返回表达式中所有制的填充统计标准偏差from titles go use pubs go select var(royalty)--返回所有值的统计方差 from titles

go use pubs go select varp(royalty)--返回所有值的填充的统计方差 from titles go --数学函数 select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34)--其中rand是获得一个随机数 --配置函数 SELECT @@VERSION --获取当前数据库版本 SELECT @@LANGUAGE--当前语言 --时间函数 select getdate()as'wawa_getdate'--当前时间 select getutcdate()as'wawa_getutcdate'--获取utc时间 select day(getdate())as'wawa_day'--取出天 select month(getdate())as'wawa_month'--取出月 select year(getdate())as'wawa_year'--取出年 select dateadd(d,3,getdate())as wawa_dateadd --加三天,注意'd'表示天,'m'表示月,'yy'表示年,下面一样select datediff(d,'2004-07-01','2004-07-15')as wawa_datediff --计算两个时间的差 select datename(d,'2004-07-15')as wawa_datename --取出时间的某一部分 select datepart(d,getdate())as wawa_datepart --取出时间的某一部分,和上面的那个差不多 --字符串函数 select ascii(123)as'123',ascii('123')as'"123"',ascii('abc')as'"abc"'--转换成ascii码select char(123),char(321),char(-123)--根据ascii转换成字符 select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc')--转换大小写 select str(123.45,6,1), str(123.45,2,2)--把数值转换成字符串 select ltrim(' "左边没有空格"')--去空格 select rtrim('"右边没有空格" ')--去空格 select ltrim(rtrim(' "左右都没有空格" '))--去空格 select left('sql server',3),right('sql server',6)--取左或者取右 use pubs select au_lname,substring(au_fname,1,1)--取子串 from authors order by au_lname select charindex('123','abc123def',2)--返回字符串中指定表达式的起始位置 select patindex('123','abc123def'),patindex('%123%','abc123def')--返回表达式中某模式第一次出现的起始位置 select quotename('abc','{'),quotename('abc')--返回由指定字符扩住的字符串 select reverse('abc'),reverse('上海')--颠倒字符串顺序 select replace('abcdefghicde','cde','xxxx')--返回呗替换了指定子串的字符串 select space(5),space(-2) --系统函数

sql函数详尽说明大全

Sql函数说明 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果。这些要求包括:执行计算与数学运算、转换数据、解析数值、组合值和聚合一个范围内的值等。 下表给出了T-SQL函数的类别和描述。 函数的组成 函数的目标是返回一个值。大多数函数都返回一个标量值(scalar value),标量值代表一个数据单元或一个简单值。实际上,函数可以返回任何数据类型,包括表、游标等可返回完整的多行结果集的类型。本章不准备讨论到这个深度,第12章将讲解如何创建和使用用户自定义函数,以返回更复杂的数据。 函数己经存在很长时间了,它的历史比SQL还要长。在几乎所有的编程语言中,函数调用的方式都是相同的: Result=Function() 在T-SQL中,一般用SELECT语句来返回值。如果需要从查询中返回一个值,就可以把SELECT当成输出运算符,而不用使用等号: SELECT Function() 一个论点

对于SQL函数而言,参数表示输入变量或者值的占位符。函数可以有任意个参数,有些参数是必须的,而有些参数是可选的。可选参数通常被置于以逗号隔开的参数表的末尾,以便于在函数调用中去除不需要的参数。 在SQL Server在线图书或者在线帮助系统中,函数的可选参数用方括号表示。在下列的CONVERT()函数例子中,数据类型的length和style参数是可选的: CONVERT (data-type [(length)], expression[,style]) 可将它简化为如下形式,因为现在不讨论如何使用数据类型: CONVERT(date_type, expression[,style]) 根据上面的定义,CONVERT()函数可接受2个或3个参数。因此,下列两个例子都是 这个函数的第一个参数是数据类型Varchar(20),第2个参数是另一个函数GETDATE()。GETDATE()函数用datetime数据类型将返回当前的系统日期和时间。第2条语句中的第3个参数决定了日期的样式。这个例子中的101指以mm/dd/yyyy格式返回日期。本章后面将详细介绍GETDATE()函数。即使函数不带参数或者不需要参数,调用这个函数时也需要写上一对括号,例如GETDATE()函数。注意在书中使用函数名引用函数时,一定要包含括号,因为这是一种标准形式。 确定性函数 由于数据库引擎的内部工作机制,SQL Server必须根据所谓的确定性,将函数分成两个不同的组。这不是一种新时代的信仰,只和能否根据其输入参数或执行对函数输出结果进行预测有关。如果函数的输出只与输入参数的值相关,而与其他外部因素无关,这个函数就是确定性函数。如果函数的输出基于环境条件,或者产生随机或者依赖结果的算法,这个函数就是非确定性的。例如,GETDATE()函数是非确定性函数,因为它不会两次返回相同的值。为什么要把看起来简单的事弄得如此复杂呢?主要原因是非确定性函数与全局变量不能在一些数据库编程对象中使用(如用户自定义函数)。部分原因是SQL Server缓存与预编译可执行对象的方式。例如,即席查询可以使用任何函数,不过如果打算构建先进的、可重用的编程对象,理解这种区别很重要。 以下这些函数是确定性的: ●?AVG()(所有的聚合函数都是确定性的) ●?CAST() ●?CONVERT() ●?DATEADD() ●?DATEDIFF() ●?ASCII() ●?CHAR() ●?SUBSTRING() 以下这些函数与变量是非确定性的: ●?GETDATE()

T-SQL内置函数

*******************Transact_SQL******************** --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果

sqlserver常用函数对比

SQLServer和Oracle的常用函数对比 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual 3.取整(小) S:select floor(-1.001) value O:select floor(-1.001) value from dual 4.取整(截取) S:select cast(-1.002 as int) value O:select trunc(-1.002) value from dual 5.四舍五入 S:select round(1.23456,4) value 1.23460 O:select round(1.23456,4) value from dual 1.2346

6.e为底的幂 S:select Exp(1) value 2.7182818284590451 O:select Exp(1) value from dual 2.71828182 7.取e为底的对数 S:select log(2.7182818284590451) value 1 O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数 S:select log10(10) value 1 O:select log(10,10) value from dual; 1 9.取平方 S:select SQUARE(4) value 16 O:select power(4,2) value from dual 16 10.取平方根 S:select SQRT(4) value 2 O:select SQRT(4) value from dual 2

SQL常用表函数整理

SQL SERVER常用系统表 sysaltfiles 主数据库保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库配置选项 syscurconfigs 主数据库当前配置选项 sysdatabases 主数据库服务器中的数据库 syslanguages 主数据库语言 syslogins 主数据库登陆帐号信息 sysoledbusers 主数据库链接服务器登陆信息 sysprocesses 主数据库进程 sysremotelogins主数据库远程登录帐号 syscolumns 每个数据库列 sysconstrains 每个数据库限制 sysfilegroups 每个数据库文件组 sysfiles 每个数据库文件 sysforeignkeys 每个数据库外部关键字 sysindexs 每个数据库索引 sysmembers 每个数据库角色成员 sysobjects 每个数据库所有数据库对象 syspermissions 每个数据库权限 systypes 每个数据库用户定义数据类型 sysusers 每个数据库用户 SQL SERVER常用函数简单介绍 只做常用部分简单介绍,详细内容见T-SQL联机丛书。 1,统计函数 avg, count, max, min, sum 多数聚会不统计值为null的行。可以与distinct一起使用去掉重复的行。可以与group by 来分组 2,数学函数 SQRT(n)返回一个数的平方根 Square(n)返回一个数的平方 ceiling(n) 返回大于或者等于n的最小整数 floor(n), 返回小于或者是等于n的最大整数 round(m,n), 四舍五入,n是保留小数的位数 abs(n) sign(n), 当n>0, 返回1,n=0,返回0,n<0, 返回-1 PI(), 3.1415.... rand(),rand(n), 返回0-1之间的一个随机数 3,字符串函数

SQL集合运算及常用函数

SQL 集合运算及常用函数 SQL 函数 一、字符转换函数 1.ASCII () 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’ 2.CHAR () 3.LOWER () 4.UPPER ()

5.STR () 把数值型数据转换为字符型数据。 STR ([,length[,]]) 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 个字符。

2.RIGHT () RIGHT () 3.SUBSTRING () SUBSTRING (,length) 返回从字符串左边第starting_ position 个字符起length个字符的部分。 四、字符串比较函数 1.CHARINDEX () 返回字符串中某个指定的子串出现的开始位置。 CHARINDEX (<’substring_expression’>,) 其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。 此函数不能用于TEXT 和IMAGE 数据类型。 2.PATINDEX () 返回字符串中某个指定的子串出现的开始位置。 PATINDEX (<’%substring _expression%’>,)其中子串表达式前后必须有百分号“%”否则返回值为0。 与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于

SQL中经典函数使用实例大全

select substring(CODE_KIND,2,3)kind from code//2处为起始位置,3为获取字符的长度。 select left(CODE_KIND,3)from CODE//返回从左边数起的3个字符,right()函数反之。 select left('1233',2) select upper(code_name)name from code//将字符串中每个小写字母转换为大写字母,lower转化成小写。 select REVERSE(code_name)code_name from code//将查询结果反过来。SELECT row_number()over(order by code_kind)as kind,*from code

with codeT as ( SELECT row_number()over(order by code_kind desc)as kind,*from code ) select*from codeT where kind>1and kind<4 SELECT RANK()over(order by code_kind)as kind,*from code//rand()查询出来的数字不是连续的。DENSE_RANK()查出来的反之。 SELECT DENSE_RANK()over(order by code_kind)as kind,*from code

學習SQL中事務,以及upper(),right(),RANK(),DENSE_RANK(),replace()等等一些操作sql中字符串的常用函數。可快速查找出sql中符合自己所想要的數據。 可以。比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的。 请看下面的例子: 可多字段排序,当多字段排序时,首先排序第一个字段,当第一个字段值相同时,才按第二个字段排序,如果第二个字段值相同,才按第三个排序... 比如说现在有两个排序字段,如果根据第1个字段排不出来(有几条记录的这个字段相同)的话,再根据第2个字段排的 排序前(注意红色标记部分的数据): SQL语句: select*from Test where uname like'Test%'order by score desc,uname asc; 排序后(注意红色标记部分的数据):

相关主题
文本预览
相关文档 最新文档