当前位置:首页 » 编程语言 » sql属于函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql属于函数

发布时间: 2022-09-08 09:21:33

① 什么是sql自定义函数

Create
Function
myFunc(@param1
int,@param2
varchar(50))
returns
int
as
begin
......
RETURN
0
end
类似这样自己建的函数,就是SQL自定义函数,可以自定义参数和返回值的,能够在查询语句中使用的。
像max(),min(),getdate(),newid()这些就是系统函数了。

② SQL中什么叫函数 什么叫参数它们的概念!

函数,就是编程中的方法。就比如现实中要把生菜做成美味可口的佳肴的时候,必须经过烹饪,而烹饪的方法都不一样。函数就如这烹饪方法一样。而参数就如这烹饪的食材一样。

③ 求教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
返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。

④ 什么SQL函数,作用有哪些

SQL 拥有很多可用于计数和计算的内建函数。
[编辑本段]函数的语法
内建 SQL 函数的语法是: SELECT function(列) FROM 表
[编辑本段]函数的类型
在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是: Aggregate 函数 Scalar 函数
[编辑本段]合计函数(Aggregate functions)
Aggregate 函数的操作面向一系列的值,并返回一个单一的值。 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句!"Persons" table (在大部分的例子中使用过) Name Age
Adams, John 38
Bush, George 33
Carter, Thomas 28

MS Access 中的合计函数
函数 描述
AVG(column) 返回某列的平均值
COUNT(column) 返回某列的行数(不包括 NULL 值)
COUNT(*) 返回被选行数
FIRST(column) 返回在指定的域中第一个记录的值
LAST(column) 返回在指定的域中最后一个记录的值
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
STDEV(column)
STDEVP(column)
SUM(column) 返回某列的总和
VAR(column)
VARP(column)

在 SQL Server 中的合计函数
函数 描述
AVG(column) 返回某列的平均值
BINARY_CHECKSUM
CHECKSUM
CHECKSUM_AGG
COUNT(column) 返回某列的行数(不包括NULL值)
COUNT(*) 返回被选行数
COUNT(DISTINCT column) 返回相异结果的数目
FIRST(column) 返回在指定的域中第一个记录的值(SQLServer2000 不支持)
LAST(column) 返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
STDEV(column)
STDEVP(column)
SUM(column) 返回某列的总和
VAR(column)
VARP(column)

[编辑本段]Scalar 函数
Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。
MS Access 中的 Scalar 函数
函数 描述
UCASE(c) 将某个域转换为大写
LCASE(c) 将某个域转换为小写
MID(c,start[,end]) 从某个文本域提取字符
LEN(c) 返回某个文本域的长度
INSTR(c,char) 返回在某个文本域中指定字符的数值位置
LEFT(c,number_of_char) 返回某个被请求的文本域的左侧部分
RIGHT(c,number_of_char) 返回某个被请求的文本域的右侧部分
ROUND(c,decimals) 对某个数值域进行指定小数位数的四舍五入
MOD(x,y) 返回除法操作的余数
NOW() 返回当前的系统日期
FORMAT(c,format) 改变某个域的显示方式
DATEDIFF(d,date1,date2) 用于执行日期计算

[编辑本段]AVG 函数

[编辑本段]定义和用法
AVG 函数返回数值列的平均值。NULL 值不包括在计算中。
SQL AVG() 语法
SELECT AVG(column_name) FROM table_name
[编辑本段]SQL AVG() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

例子 1
现在,我们希望计算 "OrderPrice" 字段的平均值。 我们使用如下 SQL 语句: SELECT AVG(OrderPrice) AS OrderAverage FROM Orders结果集类似这样: OrderAverage
950

例子 2
现在,我们希望找到 OrderPrice 值高于 OrderPrice 平均值的客户。 我们使用如下 SQL 语句: SELECT Customer FROM OrdersWHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)结果集类似这样: Customer
Bush
Carter
Adams
COUNT() 函数COUNT() 函数返回匹配指定条件的行数。
[编辑本段]SQL 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) 实例
我们拥有下列 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望计算客户 "Carter" 的订单数。 我们使用如下 SQL 语句: SELECT COUNT(Customer) AS CustomerNilsen FROM OrdersWHERE Customer='Carter'以上 SQL 语句的结果是 2,因为客户 Carter 共有 2 个订单:CustomerNilsen
2
SQL COUNT(*) 实例 如果我们省略 WHERE 子句,比如这样: SELECT COUNT(*) AS NumberOfOrders FROM Orders结果集类似这样:NumberOfOrders
6
这是表中的总行数。
[编辑本段]SQL COUNT(DISTINCT column_name) 实例
现在,我们希望计算 "Orders" 表中不同客户的数目。 我们使用如下 SQL 语句: SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders结果集类似这样: NumberOfCustomers
3
这是 "Orders" 表中不同客户(Bush, Carter 和 Adams)的数目。 FIRST() 函数FIRST() 函数返回指定的字段中第一个记录的值。 提示:可使用 ORDER BY 语句对记录进行排序。
SQL FIRST() 语法
SELECT FIRST(column_name) FROM table_name
[编辑本段]SQL FIRST() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找 "OrderPrice" 列的第一个值。 我们使用如下 SQL 语句: SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders结果集类似这样: FirstOrderPrice
1000

[编辑本段]LAST() 函数
LAST() 函数返回指定的字段中最后一个记录的值。 提示:可使用 ORDER BY 语句对记录进行排序。
SQL LAST() 语法
SELECT LAST(column_name) FROM table_name
[编辑本段]SQL LAST() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找 "OrderPrice" 列的最后一个值。 我们使用如下 SQL 语句: SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders结果集类似这样: LastOrderPrice
100

[编辑本段]MAX() 函数
MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
SQL MAX() 语法
SELECT MAX(column_name) FROM table_name注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
[编辑本段]SQL MAX() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找 "OrderPrice" 列的最大值。 我们使用如下 SQL 语句: SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders结果集类似这样: LargestOrderPrice
2000

[编辑本段]MIN() 函数
MIN 函数返回一列中的最小值。NULL 值不包括在计算中。
SQL MIN() 语法
SELECT MIN(column_name) FROM table_name注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
[编辑本段]SQL MIN() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找 "OrderPrice" 列的最小值。 我们使用如下 SQL 语句: SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders结果集类似这样: SmallestOrderPrice
100

[编辑本段]SUM() 函数
SUM 函数返回数值列的总数(总额)。
SQL SUM() 语法
SELECT SUM(column_name) FROM table_name
[编辑本段]SQL SUM() 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找 "OrderPrice" 字段的总数。 我们使用如下 SQL 语句: SELECT SUM(OrderPrice) AS OrderTotal FROM Orders结果集类似这样: OrderTotal
5700
GROUP BY 语句合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
[编辑本段]GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
SQL GROUP BY 语法
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name
[编辑本段]SQL GROUP BY 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找每个客户的总金额(总订单)。 我们想要使用 GROUP BY 语句对客户进行组合。 我们使用下列 SQL 语句: SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY Customer结果集类似这样: Customer SUM(OrderPrice)
Bush 2000
Carter 1700
Adams 2000
很棒吧,对不对? 让我们看一下如果省略 GROUP BY 会出现什么情况: SELECT Customer,SUM(OrderPrice) FROM Orders结果集类似这样: Customer SUM(OrderPrice)
Bush 5700
Carter 5700
Bush 5700
Bush 5700
Adams 5700
Carter 5700
上面的结果集不是我们需要的。 那么为什么不能使用上面这条 SELECT 语句呢?解释如下:上面的 SELECT 语句指定了两列(Customer 和 SUM(OrderPrice))。"SUM(OrderPrice)" 返回一个单独的值("OrderPrice" 列的总计),而 "Customer" 返回 6 个值(每个值对应 "Orders" 表中的每一行)。因此,我们得不到正确的结果。不过,您已经看到了,GROUP BY 语句解决了这个问题。
[编辑本段]GROUP BY 一个以上的列
我们也可以对一个以上的列应用 GROUP BY 语句,就像这样: SELECT Customer,OrderDate,SUM(OrderPrice) FROM OrdersGROUP BY Customer,OrderDate
[编辑本段]HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
SQL HAVING 语法
SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value
[编辑本段]SQL HAVING 实例
我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
现在,我们希望查找订单总金额少于 2000 的客户。 我们使用如下 SQL 语句: SELECT Customer,SUM(OrderPrice) FROM OrdersGROUP BY CustomerHAVING SUM(OrderPrice)<2000结果集类似: Customer SUM(OrderPrice)
Carter 1700
现在我们希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。 我们在 SQL 语句中增加了一个普通的 WHERE 子句: SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500结果集: Customer SUM(OrderPrice)
Bush 2000
Adams 2000

[编辑本段]UCASE() 函数
UCASE 函数把字段的值转换为大写。
SQL UCASE() 语法
SELECT UCASE(column_name) FROM table_name
[编辑本段]SQL UCASE() 实例
我们拥有下面这个 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
现在,我们希望选取 "LastName" 和 "FirstName" 列的内容,然后把 "LastName" 列转换为大写。 我们使用如下 SQL 语句: SELECT UCASE(LastName) as LastName,FirstName FROM Persons结果集类似这样: LastName FirstName
ADAMS John
BUSH George
CARTER Thomas

[编辑本段]LCASE() 函数
LCASE 函数把字段的值转换为小写。
SQL LCASE() 语法
SELECT LCASE(column_name) FROM table_name
[编辑本段]SQL LCASE() 实例
我们拥有下面这个 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
现在,我们希望选取 "LastName" 和 "FirstName" 列的内容,然后把 "LastName" 列转换为小写。 我们使用如下 SQL 语句: SELECT LCASE(LastName) as LastName,FirstName FROM Persons结果集类似这样: LastName FirstName
adams John
bush George
carter Thomas

[编辑本段]MID() 函数
MID 函数用于从文本字段中提取字符。
SQL MID() 语法
SELECT MID(column_name,start[,length]) FROM table_name参数 描述
column_name 必需。要提取字符的字段。
start 必需。规定开始位置(起始值是 1)。
length 可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

[编辑本段]SQL MID() 实例
我们拥有下面这个 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
现在,我们希望从 "City" 列中提取前 3 个字符。 我们使用如下 SQL 语句: SELECT MID(City,1,3) as SmallCity FROM Persons结果集类似这样: SmallCity
Lon
New
Bei

[编辑本段]LEN() 函数
LEN 函数返回文本字段中值的长度。
SQL LEN() 语法
SELECT LEN(column_name) FROM table_name
[编辑本段]SQL LEN() 实例
我们拥有下面这个 "Persons" 表: Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
现在,我们希望取得 "City" 列中值的长度。 我们使用如下 SQL 语句: SELECT LEN(City) as LengthOfAddress FROM Persons结果集类似这样: LengthOfCity
6
8
7

[编辑本段]ROUND() 函数
ROUND 函数用于把数值字段舍入为指定的小数位数。
SQL ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name参数 描述
column_name 必需。要舍入的字段。
decimals 必需。规定要返回的小数位数。

[编辑本段]SQL ROUND() 实例
我们拥有下面这个 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
现在,我们希望把名称和价格舍入为最接近的整数。 我们使用如下 SQL 语句: SELECT ProctName, ROUND(UnitPrice,0) as UnitPrice FROM Procts结果集类似这样: ProctName UnitPrice
gold 32
silver 12
copper 7

[编辑本段]NOW() 函数
NOW 函数返回当前的日期和时间。
SQL NOW() 语法
SELECT NOW() FROM table_name
[编辑本段]SQL NOW() 实例
我们拥有下面这个 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
现在,我们希望显示当天的日期所对应的名称和价格。 我们使用如下 SQL 语句: SELECT ProctName, UnitPrice, Now() as PerDate FROM Procts结果集类似这样: ProctName UnitPrice PerDate
gold 32.35 12/29/2008 11:36:05 AM
silver 11.56 12/29/2008 11:36:05 AM
copper 6.85 12/29/2008 11:36:05 AM

[编辑本段]FORMAT() 函数
FORMAT 函数用于对字段的显示进行格式化。
SQL FORMAT() 语法
SELECT FORMAT(column_name,format) FROM table_name参数 描述
column_name 必需。要格式化的字段。
format 必需。规定格式。

[编辑本段]SQL FORMAT() 实例
我们拥有下面这个 "Procts" 表: Prod_Id ProctName Unit UnitPrice
1 gold 1000 g 32.35
2 silver 1000 g 11.56
3 copper 1000 g 6.85
现在,我们希望显示每天日期所对应的名称和价格(日期的显示格式是 "YYYY-MM-DD")。 我们使用如下 SQL 语句: SELECT ProctName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDateFROM Procts结果集类似这样: ProctName UnitPrice PerDate
gold 32.35 12/29/2008
silver 11.56 12/29/2008
copper 6.85 12/29/2008

⑤ SQL 系统函数都是什么意思

sql中有用户登录,不同的用户有不同的权限!
一般有用户sa 和系统自带用户 ,如果你自己新建了用户那么登录的话
返回的就是你登陆数据库的用户名了!

⑥ SQL有哪些函数

1.绝对值
SQL:select abs(-1) value
O:select abs(-1) value from al
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from al
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from al
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from al
5.四舍五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from al 1.2346
6.e为底的幂
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from al 2.71828182
7.取e为底的对数
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from al; 1
8.取10为底对数
S:select log10(10) value 1
O:select log(10,10) value from al; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from al 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from al 2
11.求任意数为底的幂
S:select power(3,4) value 81
O:select power(3,4) value from al 81
12.取随机数
S:select rand() value
O:select sys.dbms_random.value(0,1) value from al;
13.取符号
S:select sign(-8) value -1
O:select sign(-8) value from al -1
----------数学函数
14.圆周率
S:SELECT PI() value 3.1415926535897931
O:不知道
15.sin,cos,tan 参数都以弧度为单位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互换(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------数值间比较
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from al
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from al
20.如何处理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
--------数值间比较
21.求字符序号
S:select ascii('a') value
O:select ascii('a') value from al
22.从序号求字符
S:select char(97) value
O:select chr(97) value from al
23.连接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from al
23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from al
23.模糊子串的位置 --返回2,参数去掉中间%则返回7
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle没发现,但是instr可以通过第四霾问 刂瞥鱿执问?BR> select INSTR('sdsfasdqe','sd',1,2) value from al 返回6
24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from al
25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from al
26.子串全部替换
S:没发现
O:select Translate('fasdbfasegas','fa','我' ) value from al
27.长度
S:len,datalength
O:length
28.大小写转换 lower,upper
29.单词首字母大写
S:没发现
O:select INITCAP('abcd dsaf df') value from al
30.左补空格(LPAD的第一个参数为空格则同space函数)
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from al
31.右补空格(RPAD的第一个参数为空格则同space函数)
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from al
32.删除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重复字符串
S:select REPLICATE('abcd',2) value
O:没发现
34.发音相似性比较(这两个单词返回值一样,发音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from al
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差
返回0-4,4为同音,1最高
--------------日期函数
35.系统时间
S:select getdate() value
O:select sysdate value from al
36.前后几日
直接与整数相加减
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from al
select to_char(sysdate,'yyyy-mm-dd') value from al
38.求时间
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from al
39.取日期时间的其他部分
S:DATEPART 和 DATENAME 函数 (第一个参数决定)
O:to_char函数 第二个参数决定
参数---------------------------------下表需要补充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O无效)
dayofyear dy, y (O表星期)
day dd, d (d O无效)
week wk, ww (wk O无效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S无效)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
----------------------------------------------
40.当月最后一天
S:不知道
O:select LAST_DAY(sysdate) value from al
41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字符串转时间
S:可以直接转或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
43.求两日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用两个日期相减(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根据差值求新的日期(比如分钟)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同时区时间
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
-----时区参数,北京在东8区应该是Ydt-------
AST ADT 大西洋标准时间
BST BDT 白令海标准时间
CST CDT 中部标准时间
EST EDT 东部标准时间
GMT 格林尼治标准时间
HST HDT 阿拉斯加—夏威夷标准时间
MST MDT 山区标准时间
NST 纽芬兰标准时间
PST PDT 太平洋标准时间
YST YDT YUKON标准时间
Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:
函数 Oracle Microsoft SQL Server
把字符转换为ASCII ASCII ASCII
字串连接 CONCAT (expression + expression)
把ASCII转换为字符 CHR CHAR
返回字符串中的开始字符(左起) INSTR CHARINDEX
把字符转换为小写 LOWER LOWER
把字符转换为大写 UPPER UPPER
填充字符串的左边 LPAD N/A
清除开始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字符串中的起始模式(pattern) INSTR PATINDEX
多次重复字符串 RPAD REPLICATE
字符串的语音表示 SOUNDEX SOUNDEX
重复空格的字串 RPAD SPACE
从数字数据转换为字符数据 TO_CHAR STR
子串 SUBSTR SUBSTRING
替换字符 REPLACE STUFF
将字串中的每个词首字母大写 INITCAP N/A
翻译字符串 TRANSLATE N/A
字符串长度 LENGTH DATELENGTH or LEN
列表中最大的字符串 GREATEST N/A
列表中最小的字符串 LEAST N/A
如果为NULL则转换字串 NVL ISNULL
日期函数
函数 Oracle Microsoft SQL Server
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
两个日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
当前日期和时间 SYSDATE GETDATE()
一个月的最后一天 LAST_DAY N/A
时区转换 NEW_TIME N/A
日期后的第一个周日 NEXT_DAY N/A
代表日期的字符串 TO_CHAR DATENAME
代表日期的整数 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截断 TRUNC CONVERT
字符串转换为日期 TO_DATE CONVERT
如果为NULL则转换日期 NVL ISNULL
转换函数
函数 Oracle Microsoft SQL Server
数字转换为字符 TO_CHAR CONVERT
字符转换为数字 TO_NUMBER CONVERT
日期转换为字符 TO_CHAR CONVERT
字符转换为日期 TO_DATE CONVERT
16进制转换为2进制 HEX_TO_RAW CONVERT
2进制转换为16进制 RAW_TO_HEX CONVERT
其它行级别的函数
函数 Oracle Microsoft SQL Server
返回第一个非空表达式 DECODE COALESCE
当前序列值 CURRVAL N/A
下一个序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用户登录账号ID数字 UID SUSER_ID
用户登录名 USER SUSER_NAME
用户数据库ID数字 UID USER_ID
用户数据库名 USER USER_NAME
当前用户 CURRENT_USER CURRENT_USER
用户环境(audit trail) USERENV N/A
在CONNECT BY子句中的级别 LEVEL N/A
合计函数
函数 Oracle Microsoft SQL Server
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:
EXTRACT(YEAR FROM 日期)

⑦ SQL函数的介绍

在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是: Aggregate 函数 Scalar 函数

⑧ sql函数和过程的正确描述是什么

区别如下:

  1. 存储过程可以返回多个变量,函数只能返回一个,函数是可以嵌入在sql语句中使用的,而存储过程不可以。

  2. 对于函数来书可以返回值或者表对象,而存储过程来说可以返回参数。

  3. 函数可以通过return 语句返回函数值,而存储过程不能。

  4. 当存储过程和函数被执行的时候,SQL Manager会到procere cache中去取相应的查询语句,如果在procere cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。

sql示例:

  1. 创建函数、查找函数:

(8)sql属于函数扩展阅读

存储过程在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是: Aggregate 函数 Scalar 函数

⑨ SQL 有哪些函数SQL中有哪些函数

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与SELECT语句的GROUP BY子句一同使用,SQL SERVER 中具体有哪些聚合函数呢?我们来一一看一下:

  1. AVG 返回指定组中的平均值,空值被忽略。

  2. 例:select prd_no,avg(qty) from sales group by prd_no

  3. 2. COUNT 返回指定组中项目的数量。

  4. 例:select count(prd_no) from sales

  5. 3. MAX 返回指定数据的最大值。

  6. 例:select prd_no,max(qty) from sales group by prd_no

  7. 4. MIN 返回指定数据的最小值。

  8. 例:select prd_no,min(qty) from sales group by prd_no

  9. 5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。

  10. 例:select prd_no,sum(qty) from sales group by prd_no

  11. 6. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。

  12. 例:select count_big(prd_no) from sales

  13. 7. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.

  14. 例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup

  15. 8. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。

  16. 例:select prd_no,binary_checksum(qty) from sales group by prd_no

  17. 9. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。

  18. 例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no

  19. 10. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。

  20. 11. STDEV 返回给定表达式中所有值的统计标准偏差。

  21. 例:select stdev(prd_no) from sales

  22. 12. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。

  23. 例:select stdevp(prd_no) from sales

  24. 13. VAR 返回给定表达式中所有值的统计方差。

  25. 例:select var(prd_no) from sales

  26. 14. VARP 返回给定表达式中所有值的填充的统计方差。

  27. 例:select varp(prd_no) from sales

⑩ sql 语句中那些是聚合函数

常见聚合函数,max(最大)、min(最小)、sum(求和)、avg(平均)等,

示例如下,

1、创建测试表,

create table test_group(id number, value number);