sql函数使用
A. 第128章 sql函数 %SQLSTRING
将值排序为字符串的排序规则函数。
%SQLSTRING 将表达式转换为按(区分大小写)字符串排序的格式。 %SQLSTRING 从字符串中去除尾随空格(空格、制表符等),然后在字符串的开头添加一个前导空格。这个附加的空格强制将 NULL 和数值作为字符串进行整理。从数字中删除前导零和尾随零。
因为 %SQLSTRING 将空格附加到所有值,所以它将 NULL 值整理为空格,字符串长度为 1 。 %SQLSTRING 将任何仅包含空格(空格、制表符等)的值整理为 SQL 空字符串( '' )。当 %SQLSTRING 将空格附加到空(零长度)字符串时,它会将空格加上空字符串的内部表示形式 $CHAR(0) 进行整理,从而导致字符串长度为 2 。
可选的 maxlen 参数在索引或整理时将表达式字符串截断为指定的字符数。例如,如果插入带有 maxlen 截断的字符串,则插入完整的字符串,并且可以通过 SELECT 语句检索;此字符串的全局索引被截断为指定长度。这意味着 ORDER BY 和比较操作仅评估截断的索引字符串。这种截断对于对超过下标的最大字符长度的字符串进行索引特别有用。使用 maxlen 参数,如果需要对长字段进行索引,可以使用截断长度参数。
%SQLSTRING 在转换表达式后执行 maxlen 截断;如果 maxlen 超过转换后的表达式的长度,则不添加填充。最大字符串长度为 3,641,144 个字符; maxlen 没有强制执行最大值。
可以使用 %SYSTEM.Util 类的 Collation() 方法在 ObjectScript 中执行相同的排序规则转换:
也可以使用 SQLSTRING() 方法调用从 ObjectScript 调用此函数:
这两种方法都支持 SQLSTRING 转换后的截断。请注意,截断长度必须包括附加的空白:
注意:要将系统范围的默认排序规则从 %SQLUPPER (不区分大小写)更改为 %SQLSTRING (区分大小写),请使用以下命令:
发出此命令后,必须清除索引,重新编译所有类,然后重建索引。不要在其他用户访问表的数据时重建索引。这样做可能会导致查询结果不准确。
以下查询在 WHERE 子句中使用 %SQLSTRING 来执行区分大小写的选择:
默认情况下, %STARTSWITH 字符串比较不区分大小写。此示例使用 %SQLSTRING 格式使此比较区分大小写。它返回所有以 “Al” 开头的名称(例如 Allen 、 Alton 等)。请注意,使用 %STARTSWITH 时,应将 %SQLSTRING 排序规则应用于语句的两侧。
以下示例使用带有字符串截断的 %SQLSTRING 来返回每个名称的前两个字符。请注意,字符串截断是 3 (不是 2 ),因为 %SQLSTRING 添加了前导空格。 ORDER BY 子句使用这个两个字符的字段将行放在一个粗略的排序顺序中:
此示例在不更改字母大小写的情况下返回截断的值。
以下示例将 %SQLSTRING 应用于子查询:
B. 求教sql函数的正确用法
distinct 省略选择字段中包含重复数据的记录,就是出来的结果无重复数据
RTRIM 去掉字符串右边的空白字符
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
CAST ( expression AS data_type )
CONVERT (data_type[(length)], expression [, style])
参数
expression
是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。
data_type
目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style
日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。
REPLICATE
以指定的次数重复字符表达式。
REPLICATE ( character_expression , integer_expression )
参数
character_expression
由字符数据组成的字母数字表达式。character_expression 可以是常量或变量,也可以是字符列或二进制数据列。
integer_expression
是正整数。如果 integer_expression 为负,则返回空字符串。
SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。
SUBSTRING ( expression , start , length )
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
MAX
返回表达式的最大值。
RIGHT
返回字符串中从右边开始指定个数的 字符
LEN
返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。
C. sql中count函数的使用
COUNT() 函数返回匹配指定条件的行数。
SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SELECT COUNT(column_name) FROM table_name;
SQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:
SELECT COUNT(*) FROM table_name;
SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
SELECT COUNT(DISTINCT column_name) FROM table_name;
注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。
SQL COUNT(column_name) 实例
下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:
实例
SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;
SQL COUNT(*) 实例
下面的 SQL 语句计算 "access_log" 表中总记录数:
实例
SELECT COUNT(*) AS nums FROM access_log;
执行以上 SQL 输出结果如下:
D. SQL的SUBSTR 函数的使用方法介绍
SQL的SUBSTR 函数的使用方法介绍
SUBSTR函数是用来截取数据库某一列字段中的一部分。
在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?)
复制代码 代码如下:
MySQL: SUBSTR( ), SUBSTRING( )
Oracle: SUBSTR( )
SQL Server: SUBSTRING( ) ;
常用的方式是:
SBUSTR(str,pos);
就是从pos开始的位置,一直截取到最后。
还有一种比较常用的'是:
复制代码 代码如下:
SUBSTR(str,pos,len);
这种表示的意思是,就是从pos开始的位置,截取len个字符(空白也算字符)。
需要注意的是:如果pos为1(而不是0),表示从第一个位置开始。
这点也很好理解,因为数据库不是我们平时写程序,他有他自己的一套习惯,数据库的记录都是从1开始没有从0开始。是吧。 ;
E. 如何使用sql函数平均值、总数、最小值、最大值、总和、标准差
avg函数:计算查询中某一特定字段资料的算术平均值。
count函数:计算符合查询条件的记录数。
min, max函数:传回指定字段值中符合查询条件的第一条、最末条记录的资料。
first, last函数:传回指定字段值中符合查询条件的最小值、最大值。
stdev函数:计算指定字段值中符合查询条件的标准差。
sum函数:计算指定字段值中符合查询条件的资料总和。
var,函数:计算指定字段值中符合查询条件的变异数估计值。
F. SQL里Round函数如何使用
ROUND() 函数
ROUND() 函数用于把数值字段舍入为指定的小数位数。
ROUND(X): 返回参数X的四舍五入的一个整数。
ROUND(X,D): 返回参数X的四舍五入的有 D 位小数的一个数字。如果D为0,结果将没有小数点或小数部分。
注意:ROUND 返回值被变换为一个BIGINT!
SQL ROUND() 语法
-from 树懒学堂
G. SQL中如何调用一个函数啊
1、首先是找到标量函数,右键单击选择新建。
H. sql max函数的使用方法
sql max函数的使用方法
在SQL数据库中,最大/最小值函数—MAX/MIN是经常要用到的。下面我给大家带来sql max函数的使用方法,欢迎大家阅读。
sql max函数的使用方法
当需要了解一列中的最大值时,可以使用MAX()函数;同样,当需要了解一列中的最小值时,可以使用MIN()函数。语法如下。
SELECT MAX (column_name) / MIN (column_name)
FROM table_name
说明:列column_name中的数据可以是数值、字符串或是日期时间数据类型。MAX()/MIN()函数将返回与被传递的列同一数据类型的单一值。
实例7 MAX()函数的使用
查询TEACHER表中教师的最大年龄。实例代码:
SELECT MAX (AGE) AS MAXAGE
FROM TEACHER
运行结果如图1示。
图1TEACHER表中教师的最大年龄
然而,在实际应用中得到这个结果并不是特别有用,因为经常想要获得的信息是具有最大年龄的教师的教工号、姓名、性别等信息。
然而SQL不支持如下的SELECT语句。
SELECT TNAME, DNAME, TSEX, MAX (AGE)
FROM TEACHER
因为聚合函数处理的是数据组,在本例中,MAX函数将整个TEACHER表看成一组,而TNAME、DNAME和TSEX的数据都没有进行任何分组,因此SELECT语句没有逻辑意义。同样的道理,下面的.代码也是无效的。
SELECT TNAME, DNAME, TSEX,SAL ,AGE
FROM TEACHER
WHERE AGE=MAX (AGE)
解决这个问题的方法,就是在WHERE子句中使用子查询来返回最大值,然后再基于这个返回的最大值,查询相关信息。
实例8 在WHERE子句中使用子查询返回最大值
查询TEACHER表中年纪最大的教师的教工号、姓名、性别等信息。
实例代码:
SELECT TNAME, DNAME, TSEX, SAL, AGE
FROM TEACHER
WHERE AGE=(SELECT MAX (AGE) FROM TEACHER)
运行结果如图2示。
图2在WHERE子句中使用子查询返回最大值
MAX()和MIN()函数不仅可以作用于数值型数据,也可以作用于字符串或是日期时间数据类型的数据。
实例MAX()函数用于字符型数据
如下面代码:
SELECT MAX (TNAME) AS MAXNAME
FROM TEACHER
运行结果如图3示。
图3在字符串数据类型中使用MAX的结果
可见,对于字符串也可以求其最大值。
说明
对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。
当然,对与日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小,如下面的实例。
实例 MAX()、MIN()函数用于时间型数据
从COURSE表中查询最早和最晚考试课程的考试时间。其中COURSE表的结构和数据可参见本书6.1节的表6-1。实例代码:
SELECT MIN (CTEST) AS EARLY_DATE,
MAX (CTEST) AS LATE_DATE
FROM COURSE
运行结果如图4示。
图4COURSE表中最早和最晚考试课程的考试时间
可见,返回结果的数据类型与该列定义的数据类型相同。
注意
确定列中的最大值(最小值)时,MAX( )(MIN( ))函数忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则MAX( )/MIN( )函数将返回NULL值。
;I. 第三十八章 SQL函数 CURTIME
返回当前本地时间的标量日期/时间函数。
``不接受任何参数。它将当前本地时间作为数据类型 TIME 返回。请注意,参数括号是可选的。 CURTIME 返回此时区的当前本地时间;它根据本地时间变量(如夏令时)进行调整。
逻辑模式下的 CURTIME 以 $HOROLOG 格式返回当前本地时间;
例如, 37065 年。
显示模式下的 CURTIME 以区域设置的默认格式返回当前本地时间;
例如, 10:18:27 。
小时以 24 小时格式表示。
要更改默认的时间格式,使用 SET OPTION 命令和 TIME_FORMAT 和 TIME_PRECISION 选项。
要只返回当前时间,请使用 CURTIME 或 CURRENT_TIME 。
这些函数以 TIME 数据类型返回它们的值。
CURRENT_TIMESTAMP 、 GETDATE 和 NOW 函数也可以作为 TIMESTAMP 数据类型返回当前日期和时间。
请注意,除了 GETUTCDATE 之外,所有 SQL时间和日期函数都特定于当地时区设置。
要获得通用的(独立于时区的)当前时间戳,你可以使用 GETUTCDATE 或ObjectScript $ZTIMESTAMP 特殊变量。
在使用嵌入式SQL时,这些数据类型的性能不同。
TIME 数据类型将值存储为 $HOROLOG 格式的整数(从午夜开始的秒数);
在SQL中显示时,转换为时间显示格式;
当从嵌入式SQL返回时,它们作为整数返回。
TIMESTAMP 数据类型以相同的格式存储和显示其值。
可以使用 CAST 或 CONVERT 函数来更改时间和日期的数据类型。
下面的例子都返回当前系统时间:
下面的嵌入式SQL示例返回当前时间。
因为这个时间是以 $HOROLOG 格式存储的,所以它被返回为一个整数:
下面的例子将 Contacts 表中选中行的 LastCall 字段设置为当前系统时间:
J. SQL语句整理——函数篇
函数是大牛封装好的程序,一些函数经过时间的沉淀和不断地被开发运用,变得十分的精巧和实用。
函数让人不再纠结于底层的逻辑,就像‘遥控器’或者说类似于数学中的抽象概念一样,在数学中运用定理,很多时候不需要一步步推导出定理(当然能推导的都是大牛。),我们在学习过程中,很多时候也不用纠结‘如果不懂底层的逻辑成为不了高手’这样到处可见的言论,只管做,体会就行了,当有需要的时候,自然会了解底层的东西,顺其自然就行(自勉哈哈)。
聚合函数就是常见的汇总函数:SUM 求和,AVG平均(相当于average),MAX最大,MIN最小,COUNT平均等。
打开EXCEL数据→现有连接
点击recent
相当于if函数,最多能嵌套14层。
IIF(条件,true,false)
给语文成绩大于90的人发小红花
它是一个取整函数。
根据第一参数的结果,在后面参数对应位置给出结果。
如果表达式结果有小数则取整。
在实际运用中choose函数还是比较小众的。
下面的例子有些意思,统计生肖的人数。需要做到数据透视表中。
left 从左到右提取字符
right 从右向左提取字符
语法结构 mid(字符串,提取的起始位置,提取的长度)
根据身份证号判断性别
身份证号有的是15位有的是18位,是15位的最后一位代表性别,18位的第十七位代表性别。那么取出第15位到第17位的数字求余,就能满足条件。
字符串长度提取。
INSTR函数与工作表函数FIND类似,只是参数位置略有区别:
INSTR([查找的起始位置](可省略),查找区域,查找关键字)
FIND(查找的关键字,查找的区域,查找的起始位置(可省略))
我们想要把市名提取出来
REPLACE(查找的区域,查找的内容,替换内容)
相当于在工作表中按CTRL+F替换的功能。
拆分出生年月日
我们可以用group by 和聚合函数进行各种汇总,但是想对汇总结果进行进一步的条件筛选,这时就用到having语句,having语句与where条件语句基本类似,不过它是针对group by汇总后的进行的条件筛选。
需要筛选汇总出农作物总产量大于10000数据。