当前位置:文档之家› EXCEL2003 OLEDB查询下的SQL函数整理(whsfhwm)

EXCEL2003 OLEDB查询下的SQL函数整理(whsfhwm)

EXCEL2003 OLEDB查询下的SQL函数整理(whsfhwm)
EXCEL2003 OLEDB查询下的SQL函数整理(whsfhwm)

目录

一、前言 (3)

1.背景简介 (3)

2.适用范围: (4)

3.技巧介绍 (4)

4.SQL函数分类 (5)

二、聚合函数 (6)

1.Sum 函数 (6)

2.Count 函数 (8)

3.Avg 函数 (9)

4.Min 和 Max 函数 (10)

5.First 和 Last 函数 (11)

6.StDev 和 StDevP 函数 (12)

7.Var 和 VarP 函数 (12)

三、字符串相关函数 (13)

(一) 字符串查找函数 (13)

1.Instr函数 (13)

2.InStrB 函数 (15)

(二) 字符串转换函数 (15)

1.CBool(expression) (15)

2.CByte(expression) (15)

https://www.doczj.com/doc/1212682694.html,ur(expression) (15)

4.CDate(expression) (15)

5.CDbl(expression) (15)

6.CDec(expression) (15)

7.CInt(expression) (15)

8.CLng(expression) (15)

9.CSng(expression) (15)

10.CStr(expression) (15)

11.CVar(expression) (15)

12.Val(string) (15)

13.Str(number) (16)

(三) 字符串处理函数 (17)

1.Trim(string) (17)

2.Ltrim(string) (17)

3.Rtrim(string) (17)

4.Len(string) (17)

5.Left(string, x) (17)

6.Right(string, x) (17)

7.Mid(string, start,x) (17)

8.Ucase(string) (17)

9.Lcase(string) (17)

10.Space(x) (18)

11.Asc(string) (18)

12.AscB(string) (18)

13.AscW(string) (18)

14.Chr(charcode) (18)

15.ChrW(charcode as long) (18)

16.String(number,string) (18)

17.LeftB(String, Length As Long) (18)

18.RightB(String, Length As Long) (18)

19.MidB(String, Start As Long, [Length]) (18)

20.LenB(Expression) (19)

21.Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) (19)

22.StrComp(string1, string2[, compare]) (20)

23.StrConv(string, conversion, LCID) (21)

四、数学函数 (22)

1.Sin(X)、Cos(X)、Tan(X)、Atan(x) (22)

2.Log(x) (22)

3. Exp(x) (22)

4.Abs(x) 返回绝对值。 (22)

5.Int(number)、Fix(number) (22)

6.Sgn(number) (22)

7.Sqr(number) (22)

8.VarType(varname) (22)

9.Rnd(x) (22)

10.ROUND(c,decimals) (22)

五、测试函数 (22)

1.IsNumeric(x) (22)

2.IsDate(x) (23)

3.IsEmpty(x) (23)

4.IsError(expression) (23)

5.IsNull(expression) (23)

6.IsObject(identifier) (23)

六、日期时间函数 (23)

1.日期加减:DateAdd函数 (23)

2.计算两个日期的差DateDiff函数: (24)

3.提取日期中的部分内容DatePart函数: (24)

4.用独立的部件生成日期DateSerial函数: (25)

5.用字符串表达式生成日期:DateValue(stringexpression) (26)

6.Now() (26)

7.Date() (26)

8.Time() (26)

9.Timer() (26)

10.TimeSerial(hour, minute, second) (26)

11.DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) (26)

12.Second(time) (26)

13.Minute(time) (27)

14.Hour(time) (27)

15.Day(date) (27)

16.Month(date) (27)

17.Year(date) (27)

18.Weekday(date, [firstdayofweek]) (27)

七、流程控制函数 (27)

1.Iif()和Switch() (27)

八、结束语 (28)

一、前言

1.背景简介

一直想对EXCEL 2003中SQL语句里的可用函数进行专门的归纳整理,今天终于与大家见面了。虽然目前EXCEL 2007/2010使用者越来越多,但无疑EXCEL 2003依然有着大量的使用人群,所以我才觉得很有必要对此进行整理,方便SQL初学者,希望他们能够少走一些弯路,节约一点时间来学习更多的精彩内容。相信对于使用高版本的朋友来说,本文也是有一定的借鉴作用的。

构成本文的内容,有相当部分是来自于EH培训中心SQL初级培训班的培训过程,有引自EH技术论坛的内容,也有来自微软提供的帮助文档,当然还有本人自己钻研的一点点心得体会,所以这里主要是一种归纳整理。

由于本人水平所限,学习SQL时间也不长,所以有许多地方理解还比较肤浅,也难免有所疏漏或谬误,欢迎大家批评指正,或给与补充。

本文中,如果没有特别说明,则所提到的SQL函数都是已经经过本人在EXCEL2003中OLE DB环境下测试并通过的;文中提到的示例语句一般使用蓝

色字体,由于示例太多的话,将会让EXCEL文件过于庞大,故只在EXCEL文件“EXCEL-OLE DB之SQL函数示例(whsfhwm整理).xls”里提供了一部分实例,方便大家进行测试,文中出现的示例,而上述EXCEL文件中又没有的,完全可以自己做测试。另外,由于SQL语句的语法对于大小写不敏感,所以本文中并没有对SQL语句的书写进行严格规范,这一点请大家多多包涵。

2.适用环境:

本文介绍的内容适用的环境为:EXCEL 2003 OLE-DB环境下的SQL查询。本文内容重点在于介绍SQL函数,而非SQL语句。

3.技巧介绍

介绍SQL函数之前,先介绍一下本人在测试SQL语句中的几个小技巧:●编辑技巧:(虽然不是本人首创,但接触SQL多了,自然而然就需要这

样做了)使用记事本或其他类似小巧的编辑工具来编辑SQL语句。通常,你会感觉到编辑查询对话框中进行编辑SQL语句实在是不方便,因此推荐在记事本中进行编辑,好处有两点:一是可以方便的将数据源的标题行复制过来,然后用替换的方法将字段名称之间转化为“,”,这个是SQL 语句语法的要求,这样复制过来的字段名称还可以避免自己录入出错的可能性;二是可以防止在所书写SQL语句有错误的情况下丢失刚才的语句,起到临时书写备份的作用,便于自己对错误语句的检查。

●首次创建查询表技巧:第一次创建导入外部数据的查询表时,不得不通

过菜单-导入外部数据-导入数据-选择数据源文件-出现“编辑OLE DB 查询”对话框时,此时一般就不要匆忙将自己书写的SQL查询语句录入

到命令文本中,而是采用默认的方式生成查询表,这样做的好处就是避免自己所写的SQL语句有误,不产生任何结果,然后下一次操作又要重复上面的步骤,效率显然较低;所以建议采用默认方式,然后再通过右键快捷菜单打开编辑查询对话框进行修改测试。

●复制SQL查询表技巧:针对同一数据源创建多个SQL查询表时,第二个

及以后的查询表可以不用通过菜单操作,而直接把第一个SQL查询表的全部区域进行复制(显然比通过菜单操作要快得多),然后修改SQL语句即可。

注意:当你的被复制的SQL查询表只返回一个值时,也就是只有一个字段名,一个结果值,显示上只有一列两行,实际要复制的时候必须复制一列3行,即把结果值下面的那个单元格也一起复制,否则复制过去的就不是查询表,右键点击就不会有“编辑查询”菜单(经本人测试,EXCEL2007/2010版本创建的SQL查询表不存在此问题)。

●调试复杂SQL语句技巧(比如用到嵌套查询或联合查询或子句较多):

可以将SQL语句分割成多个独立的查询分语句或去掉一些复杂子句,然后逐一测试分语句或逐步添加子句,这样便于发现问题,或观察中间结果是否与自己的期望结果一致。

●注意检查源表字段的数据类型:这个其实不叫技巧,但需要引起重视,

尤其是出现古怪的结果的时候。尽量采用规范的表格数据结构,同一个字段的数据类型要注意保持一致,否则可能出现意想不到的结果,超出你的期望。

4.SQL函数分类

EXCEL2003中的SQL函数主要有如下几类(共有88个):

●聚合函数(也有称作“合计函数”、“聚集函数”等其他叫法的,我们主要

注重学习用法。)

●字符串相关函数

●日期时间函数

●数学函数

●测试函数

●流程控制函数

二、聚合函数

这一部分主要参考了《Microsoft Jet SQL语言参考》中的内容,并结合本人的测试示例和一些亲身体会来介绍。

聚合函数主要有:

●Sum 函数

●Count 函数

●Avg 函数

●Min, Max 函数

●First, Last 函数

●StDev, StDevP 函数

●Var 和 VarP 函数

注意:使用聚合函数的查询必须要有from子句。

1.Sum 函数

返回值:包含在指定查询字段中一组值的总计。

语法: Sum(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 聚合函数)。

说明:

Sum 函数会忽略包含Null 字段的记录。

可以在一个查询表达式之中使用Sum 函数。你也可以在具备SQL 特性的QueryDef 对象中或在创建基于SQL查询的Recordset 对象时使用这一表达式。

示例:

示例1-1:查询各省份的发货数量小计:

select 省份,sum(数量) as 数量小计from [发货清单$] group by 省份

示例1-2:统计发货总数量:

select sum(数量) as 总数量from [发货清单$]

示例1-3:统计湖南省2009年发货总数量:

select sum(数量) as 2009年湖南发货总屏数from [发货清单$] where 省份='湖南' and 发货日期between #2009-1-1# and #2009-12-31# 注意:在EXCEL2003中,上述示例1-2、示例1-3 的返回值虽然都是一个,只有2个单元格(包括字段名称)有显示内容,但所在的SQL查询结果占用了3个单元格(包括第3行所在同列的单元格)。

此外,sum()函数和后面介绍的count()函数在排名等其他方面的高级应用,

请大家参考Scarlett_88讲师的精华帖:SQL&Excel结合经典剖析:47期基础题呀,几多疑惑,几多玩味。我们来细细品一品。

2.Count 函数

返回值:计算从查询返回的记录数。

语法:Count(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL合计函数).您可以计算任何种类的数据,包含文本数据。

说明:可以使用Count 计算下一级查询的记录数。例如,可以使用Count 计算运往指定国家的货物订单数量。

虽然expr 能执行一个字段上的计算,但Count 只是简单计算记录的数量。并不管记录中保存的是什么值。

Count 函数不数带有Null 字段的记录,除非expr是星号(*) 通配符dadefWildcardCharacters.如果使用星号,Count 将计算所有记录的总量,包括有Null 的字段的记录。Count(*) 比Count ([Column Name]) 快得多。不要将星号放在引号(' ') 中。

示例:

示例2:计算“发货清单”表中的省份个数::

SELECT count (*) as 省份个数FROM

( SELECT distinct 省份from [发货清单$] )

上例中的distinct关键字使得嵌套查询子句获得所有不重复的省份,然后通过外层查

询中的count(*)计算省份个数。

如果expr 标识多重字段,在至少有一个字段的值不为Null 的情况下,Count 函数只计算一个记录。如果全部的指定字段为Null,没有记录会被计算。使用(&) 分隔字段名。

在查询表达式中可以使用Count。你可以把这些表达式应用于具备SQL 特性的QueryDef对象中或在创建基于SQL查询的Recordset时。

注意:其他系统环境下的SQL中,有的支持count(distinct/all 列名)的样式,EXCEL2003中的外部导入数据就是使用的JET DB 4.0 SQL ,并不支持count(distinct/all 列名)的用法,只支持count(列名或列名组合表达式)或count(*)的样式。

3.Avg 函数

返回值:计算包含在特定查询字段中的一组数值的算术平均值。

语法:Avg(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算平均值的数据;或者标识一个表达式,它用该字段中的数据来执行计算。expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL 合计函数)。

说明:使用Avg 计算的平均值是算术平均值(将全部值的总和除以值的数目)。

注意:Avg 函数在计算中不计任何Null 字段。

示例:

示例3-1:查询各省份,各类型的平均数量:

select 省份,类型,avg(数量) as 平均数量from [发货清单$] group by 省份,

类型

示例3-2:统计2007年工程平均数量大于3的各省工程平均数量,并按平均数量降序排列:

select 省份,avg(数量) as 平均数量from [发货清单$] where year(发货日期)=2007 group by 省份having (avg(数量)> 3) order by avg(数量) desc

4.Min 和 Max 函数

返回值:在查询时从一组指定字段的值中返回最小或最大值。

语法:

Min(expr)

Max(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL 合计函数)。

说明:可以使用Min 及Max 来计算字段中的最小及最大值,该字段是基于指定的合计或分组的。例如,可以使用这些函数返回最低和最高的货运成本。如果没有指定合计,则使用整个表。

示例:

示例4-1:获得“发货清单”表各省份中的最大发货量:

select max(发货量) as 各省份中的最大发货量from

(select 省份, sum( 数量) as 发货量from [发货清单$] group by 省份)示例4-2:获得“发货清单”表各省份中的最小发货量:

select min(发货量) as 各省份中的最小发货量from

(select 省份, sum( 数量) as 发货量from [发货清单$] group by 省份)

5.First 和 Last 函数

返回值:在查询所返回的结果集中,第一个记录或最后一个记录所返回的字段值。

语法:

First(expr)

Last(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL 合计函数)。

说明:First和Last 函数与MoveFirst和MoveLast法在DAO 记录集合对象中是相近的。它们只简单返回查询结果集中的第一个或最后一个记录的指定字段值。因为通常返回的记录没有一定的顺序,所以这些函数返回的记录会任意地排列。

注意:经本人测试,EXCEL-SQL系统中,带有first或last函数的查询语句,即使查询语句里包含一个ORDER BY 子句也不起作用,系统还是按原有默认顺序的记录返回第一行或最后一行结果,对此有异议的朋友可以发帖讨论。

示例:

示例5-1:提取2008年第一笔发货记录的合同号及发货数量:

select first(合同号) as 2008年第一笔发货记录的合同号,first(数量) as 发货数量from [发货清单$] where year(发货日期) = 2008

示例5-2:提取最后发货记录的合同号及发货数量:

select last(合同号) as 最后发货的合同号,last(数量) as 发货数量from [发货清单$]

【特别说明】下面提到的四个聚合函数(StDev、StDevP、Var、VarP函数)本人均未测试,文中有关这四个函数的内容完全摘自于《Microsoft Jet SQL语言参考》中的介绍,这里也就没有提供实测示例。请对此有兴趣的朋友自行研究,当然也欢迎分享你的心得体会和研究成果。

6.StDev 和 StDevP 函数

返回值:返回总体或总体样本的标准偏差的估计值,此估计值用包含在一个查询的指定字段中的一组值来表示。

语法:

StDev(expr)

StDevP(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL 合计函数)。

说明:StDevP 函数计算总体,而StDev 函数则计算总体样本。

如果下一级查询中包含两个以下的记录(或没有记录,对于StDevP 函数),这两个函数将返回一个Null 值(表示不能计算标准偏差)。

7.Var 和 VarP 函数

返回值:返回一个总体或总体样本的方差的估计值,此估计值用包含在指定查询字段中的一组值来表示。

语法:

V ar(expr)

V arP(expr)

其中expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。expr 中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是SQL 合计函数)。

说明:使用V arP 函数计算总体,而V ar 函数计算总体样本。

如果下一级查询中包含两个以下的记录,V ar 及V arP 函数将返回一个Null 值,表示不能计算方差。

三、字符串相关函数

(一) 字符串查找函数

1.Instr函数

返回值:返回变量型(长型)V ariant (Long),指定一字符串在另一字符串中最先出现的位置。

语法:InStr([start, ]string1, string2[, compare])

由于EXCLE OLE DB中的SQL没有replace类似的函数,所以Instr函数的使用在某些场合显得尤为重要,所以这里就对该函数的各参数做详细说明:start 可选。数值表达式,设置每次搜索的开始位置。如果省略,则从第

一个字符位置开始搜索。如果start 包含Null,将产生错误。如果指定compare 参数,则必须指定start 参数。

string1必选。要在其中进行搜索的字符串表达式。

string2必选。被搜索的字符串表达式。

compare 可选。指定字符串比较类型。如果compare 为Null,将产生错误。如果省略compare,则比较类型由Option Compare 设置决定。请指定有效的LCID(区域设置ID),以在比较中使用区域设置特定的规则。

compare 参数设置如下:

常量值说明

vbUseCompareOption -1 使用Option Compare 语句的设置执行比较。

vbBinaryCompare 0 执行二进制比较。

vbT extCompare 1 执行文本比较。(此时不区分字母的大小写)

vbDatabaseCompare 2 Microsoft Office Access 2007 专用。根据数据库中的信息执行比较。

select Instr("XXpXXpXXPXXP", "P") as P的位置------返回P的位置值9。

注意:在参数compare缺省的情况下,instr()函数区分大小写。

示例:

Instr(4,"XXpXXpXXPXXP", "P") ------ 返回6;

Instr(1,"XXpXXpXXPXXP", "w") ------ 返回0;

注意:上述两个示例都没有from子句。其实,根据我的学习体会,除了聚集函数必须要有from子句之外,本文中提到的其他各类SQL函数都可以不需要from子句,要注意的是,此时该SQL语句查询结果返回值只能是一个。

select公司名称, trim(mid(电话,instr(电话,')')+1)) as 号码from [供应商$] 这是一个相对复杂的应用,根据供应商表中原有电话列的“(区号)号码”

的形式,提取各公司的联系电话号码(不要括号和区号,并去掉空格)。

2.InStrB 函数

返回值:作用于包含在字符串中的字节数据。所以InStrB 返回的是字节位置,而不是字符位置。

(二) 字符串转换函数

1.CBool(expression) 转换为Boolean型

2.CByte(expression) 转换为Byte型

https://www.doczj.com/doc/1212682694.html,ur(expression) 转换为Currency型

4.CDate(expression) 转换为Date型

5.CDbl(expression) 转换为Double型

6.CDec(expression) 转换为Decemal型

7.CInt(expression) 转换为Integer型

8.CLng(expression) 转换为Long型

9.CSng(expression) 转换为Single型

10.CStr(expression) 转换为String型

11.CVar(expression) 转换为V ariant型

12.Val(string)转换为数据型

上述函数功能类似,基本上都是进行数据类型转换,就不一一介绍了。只

对个别函数的使用进行详细介绍,其他函数的具体使用可以参考微软网站上的帮助(个人经验:参考VBA中同名函数的帮助,语法结构都类似)。

V al函数会在其不能识别为数字的一部分的第一个字符处停止读取字符串。不会识别经常被当作数值的一部分的符号和字符,如美元符号和逗号。不过,该函数会识别进位制前缀&O(八进制)和&H(十六进制)。空白、制表符和换行字符均会从该参数中去掉。

下面的语句将返回值1615198:V al(" 1615 198th Street N.E.")

在下面的代码中,V al 将返回所显示的十六进制值的十进制值-1:V al("&HFFFF")

V al 函数仅将句点(.) 识别为有效的小数点。当使用其他形式的小数点时(如在国际化应用程序中),请改用CDbl 将字符串转换为数字。

13.Str(number)函数

必选的 number 参数是 Long 类型的值,其中包含任何有效的数值表达式。

将数字转换为字符串时,通常会为 number 的符号保留一个先导空格。如果 number 为正,返回的字符串中将包含一个先导空格,暗示具有正号(+)。

可以使用 Format 函数将希望设置格式的数字值转换为日期、时间、货币或用户定义的其他格式。与 Str 不同,Format 函数并不会为 number 的符号包含一个先导空格。

Str 函数只将句点(.) 识别为有效的小数点。当可能使用其他小数点时(例如,在国际化应用程序中),请使用CStr 将数字转换为字符串。

select cstr(2010-5-25) 返回结果都是文本型的“1980”,这里的“-”被当着减号进行运算,并将运算结果转换为文本型返回。

select str(2010-5-25)返回结果都是文本型的“1980”。

Select str(true)返回结果为“-1”,select str(false) 返回结果为“0”。

select str(#2010-5-25#) 返回结果为文本型的“2010-5-25”,对于日期型的数据转换结果没有先导空格。

val("32a4")-------返回32

val("ad45f")-------返回0

CInt ("32a4")-------报错

Str(“aa”) -------报错

Str(“32aa4”) -------报错

Str(“324”) -------返回324

表达式& “”相当于将表达式结果转换为字符串型。

+0或-0 在纯数字文本数据类型的情况下,其用法与Cint或CLng用法类似;

(三) 字符串处理函数

1.Trim(string) 去掉string左右两端空白。

2.Ltrim(string) 去掉string左端空白。

3.Rtrim(string) 去掉string右端空白。

4.Len(string) 计算string长度。

5.Left(string, x) 取string左段x个字符组成的字符串。

6.Right(string, x) 取string右段x个字符组成的字符串。

7.Mid(string, start,x) 取string从start位开始的x个字符组成

的字符串。

8.Ucase(string) 转换为大写。

9.Lcase(string) 转换为小写。

10.Space(x) 返回x个空白的字符串。

11.Asc(string) 返回一个integer,代表字符串中首字母的字符代

码。

12.AscB(string) 返回一个byte,代表字符串中首字节的值,不常

用。

13.AscW(string) 返回一个integer,代表字符串中首字符的本机

字符代码(Unicode或ANSI)。

14.Chr(charcode) 返回string,其中包含有与指定的字符代码相关

的字符。

15.ChrW(charcode as long) 返回string,其中包含指定本机字

符的字符串(Unicode或ANSI)。

16.String(number,string) 返回string首字符重复number次数的

字符串。

17.LeftB(String, Length As Long) 从一个字符串的左边起

返回指定数目的字节。

18.RightB(String, Length As Long)从一个字符串的右边起

返回指定数目的字节。

19.MidB(String, Start As Long, [Length])从一个字符串中返

回指定数目的字节。

20.LenB(Expression) 返回存储一个变量所需的字节数。

21.Format(expression[, format[, firstdayofweek[,

firstweekofyear]]])

返回V ariant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。

expression 必要参数。任何有效的表达式。format可选参数。有效的命名表达式或用户自定义格式表达式。

Format() 处理日期输出格式时,有的时候和datepart()相似,但前者的结果是文本型,后者是数值型。

“w”代表星期几,

“ww”代表一年中的第几周,

“y”代表一年中的第几天;

“q”代表季度,

“yyyy”——年份(4个数字);

“yy”——年份(年份后2个数字);

“m”——月份,

“d”——日期,

“h”——小时,

“mi”——分钟,

“s”——秒。

总之,Format功能很强大,可替代许多函数。但要注意的是它返回的是文本数据。

其他还有如下本人测试过的部分应用示例:

FORMAT(数据,”#”) -----返回文本型数字

FORMAT(数据,”0000#”) -----返回文本型数字,占有5位,不足5位的前面补零。

FORMAT(NOW(),””) -----文本格式的日戳“2010-5-22 7:59:18”,如果数据源不是日期,则显示空白。

FORMAT(NOW(),”d”) -----日(1,2,……,30,31)

FORMAT(NOW(),”dd”) -----日(01,02,……,30,31)

FORMAT(NOW(),”ddd”) -----星期几的英文缩写 Fri

FORMAT(NOW(),”dddd”) -----星期几的英文全称Friday

FORMAT(NOW(),”ddddd”) -----2010-5-21

FORMAT(NOW(),”dddddd”) -----2010年5月21日

FORMAT(NOW(),"dddddddddd")----- 2010年5月21日Friday

FORMAT(数据 ,"正;负;零")-----根据数据的符号来显示结果,数据为数值1或字符串“1”的结果是一样的。

22.StrComp(string1, string2[, compare])

返回V ariant (Integer),为字符串比较的结果。

string1 必要参数。任何有效的字符串表达式。

string2 必要参数。任何有效的字符串表达式。

Compare 可选参数。指定字符串比较的类型。如果第三个参数值为1,字符串是以文本比较的方式进行比较;如果第三个参数值为0 或是缺省,则以二进制比较的方式进行比较,此时函数将区分字母的大小写。参与比较的两

整理的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; 排序后(注意红色标记部分的数据):

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