sqlserver常用函数
- 1 - sqlserver常用函数
SQLServer是一种关系型数据库管理系统,它提供了许多有用的函数来处理数据。以下是一些常用的SQL Server函数:
1. SUBSTRING函数:用于返回一个字符串的子字符串。
2. LEN函数:用于返回一个字符串的长度。
3. REPLACE函数:用于将字符串中的指定字符或字符串替换为新的字符或字符串。
4. CHARINDEX函数:用于查找一个字符串中的子字符串的位置。
5. UPPER和LOWER函数:用于将字符串转换为大写或小写。
6. CAST和CONVERT函数:用于将一个数据类型转换为另一个数据类型。
7. GETDATE函数:用于返回当前系统日期和时间。
8. DATEPART函数:用于从日期或时间值中提取指定的部分(例如,年、月、日、小时、分钟或秒)。
9. DATEDIFF函数:用于计算两个日期之间的差异。
10. RANK和ROW_NUMBER函数:用于对查询结果进行排名和编号。
这些函数可以极大地方便SQL Server开发人员的工作,使他们能够更轻松地处理和管理数据。
sqlserver函数大全
sqlserver函数⼤全
原⽂:SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。https:///database/201801/712174.html ⼀旦成功地从表中检索出数据,就需要进⼀步操纵这些数据,以获得有⽤或有意义的结果。这些要求包括:执⾏计算与数学运算、转换数据、解析数值、组合值和聚合⼀个范围内的值等。下表给出了T-SQL函数的类别和描述。函数类别作⽤聚合函数执⾏的操作是将多个值合并为⼀个值。例如 COUNT、SUM、MIN 和 MAX。配置函数是⼀种标量函数,可返回有关配置设置的信息。转换函数将值从⼀种数据类型转换为另⼀种。加密函数⽀持加密、解密、数字签名和数字签名验证。游标函数返回有关游标状态的信息。⽇期和时间函数可以更改⽇期和时间的值。数学函数执⾏三⾓、⼏何和其他数字运算。元数据函数返回数据库和数据库对象的属性信息。排名函数是⼀种⾮确定性函数,可以返回分区中每⼀⾏的排名值。⾏集函数返回可在 Transact-SQL 语句中表引⽤所在位置使⽤的⾏集。安全函数返回有关⽤户和⾓⾊的信息。字符串函数可更改 char、varchar、nchar、nvarchar、binary 和 varbinary 的值。系统函数对系统级的各种选项和对象进⾏操作或报告。系统统计函数返回有关 SQL Server 性能的信息。⽂本和图像函数可更改 text 和 image 的值。
函数的组成
函数的⽬标是返回⼀个值。⼤多数函数都返回⼀个标量值(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个参数。因此,下列两个例⼦都是正确的:SELECT CONVERT(Varchar(20), GETDATE())
SQLServer和Oracle常用函数对比
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
SQLServer常用单词表
SQLServer常用单词表
T01
database 数据
DBMS 数据库管理系统
master 主要,首席
model 模型
relation 关系
studio 套件
server 服务器
client 客户端
T02
table 表
column 字段、列
design 设计
primary key 主键
foreign key 外键
datetime 日期时间
varchar
nvarchar
unique 唯一
identity
check 检查
T03
insert 添加
delete 删除
update 修改
select 查询
union 联合
value 值
null 空
T04
select 选择
distinct 不同的
order 排序
ascend 上升
descend 下降
percent 百分比
group 分组
where
having 持有 top 顶部
T05
like 像...一样
between 在...中间
max 最大值
min 最小值
average 平均值
count 计数
T06
having 持有
inner 内部的
outer 外部的
left 左边的
right 右边的
join 联接
SQLServer和Oracle的常用函数对比
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
SqlServercoalesce函数
SqlServercoalesce函数
功能⼀:
SELECT COALESCE(NULL, NULL, GETDATE())
由于两个参数都为null,所以返回getdate()函数的值,也就是当前时间。即返回第⼀个⾮空的值。由于这个函数是返回第⼀个⾮空的值,所以
参数⾥⾯必须最少有⼀个⾮空的值,如果使⽤下⾯的查询,将会报错:
SELECT COALESCE(NULL, NULL, NULL) 功能⼆:
declare @cc nvarchar(Max)
select @cc=coalesce(@cc +','+
client ,client
)
FROM t1
print @cc结果
还有⼀个很重要的功能:。当你尝试还原⼀个库,并发现不能独占访问时,这个功能⾮常
有效。我们来打开多个窗⼝,来模拟⼀下多个连接。然后执⾏下⾯的脚本:
DECLARE @SQL VARCHAR(8000)
SELECT @SQL = COALESCE(@SQL, '') + 'Kill ' + CAST(spid AS VARCHAR(10)) + '; '
FROM sys.sysprocesses
WHERE DBID = DB_ID('AdventureWorks')PRINT @SQL --EXEC(@SQL) Replace the print statement with exec to execute
SQLSERVER常用函数
SQLSERVER常用函数
***function(/*常用函数*/)***
----统计函数----
AV G --求平均值
COUNT --统计数目
MAX --求最大值
MIN --求最小值
SUM --求和
--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee) --STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--VAR()
--VAR()函数返回表达式中所有值的统计变异数
--VARP()
--VARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression) --返回以弧度表示的角的正弦
COS(float_expression) --返回以弧度表示的角的余弦
TAN(float_expression) --返回以弧度表示的角的正切
COT(float_expression) --返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
sqlserver常用表值函数
sqlserver常⽤表值函数
1.fnSplit:把字符串分割为表。
CREATE FUNCTION fnSplit
(
@c VARCHAR(2000),
@split VARCHAR(2)
)
RETURNS @t TABLE(col VARCHAR(200))
AS
BEGIN
WHILE (CHARINDEX(@split, @c) <> 0)
BEGIN
INSERT @t
(
col
)
VALUES
(
SUBSTRING(@c, 1, CHARINDEX(@split, @c) -1)
)
SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')
END
INSERT @t
(
col
)
VALUES
(
@c
)
RETURN
END
GO
2.fnGetSplitString
将字符串拆分为表:例⼦:“1,2,3,4,5”拆分为表
CREATE FUNCTION [dbo].[fnGetSplitString]
(
@strId NVARCHAR(MAX),
@Delimiter CHAR(1)
)
RETURNS @TableList TABLE(strId NVARCHAR(MAX))
BEGIN
IF @strId = ''
RETURN
DECLARE @XML XML
SET @XML = '' + REPLACE(@strId, @Delimiter, '') +
''
INSERT @TableList
SELECT RTRIM(
LTRIM(REPLACE(Word.value('.', 'nvarchar(max)'), CHAR(10), ''))
) AS ListMember
FROM @XML.nodes('/root/csv') AS WordList(Word)
RETURN
END
GO
3.fnGetSplitIdAndRversion
SQLServer常用语句
SQLServer常⽤语句
1. 修改某列的字符集
tinyint,int,double,decimal,datetime都不⽀持字符集变更
ALTER TABLE TableName ALTER COLUMN ColumnName [varchar](30) COLLATE Chinese_PRC_CS_AS
2.不同字符集间⽐较
可以只在⼀列上使⽤Collate,保证和另⼀列的字符集⼀致
Select * From TableA A,TableB BWhere A.No Collate Chinese_PRC_CS_AS = B.No Collate Chinese_PRC_CS_AS
3.将多⾏的某列合并
表结构和数据如下
Create Table #TempTable
(
Id int,
[Description] varchar(50)
)
Insert #TempTable(Id,Description)
Select 1,'1.1' Union All
Select 1,'1.2' Union All
Select 2,'2.1' Union All
Select 2,'2.2' Union All
Select 2,'2.3'
Select * From #TempTable
3.1 输出结果
3.2更新表
3.3按组合并查询
SQL Stuff语法
STUFF ( character_expression , start , length ,character_expression )
以下⽰例在第⼀个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插⼊第⼆个字符串,从⽽创建并返回⼀个字符串
SELECT STUFF('abcdef', 2, 3, 'ijklmn')--运⾏结果aijklmnef
SQL Coalesce语法
COALESCE ( expression [ ,...n ] ) 返回其参数中第⼀个⾮空表达式。
sqlserver的datediff函数
sqlserver的datediff函数
这两天要把⼀个sqlserver数据库的程序改成oracle的,发现两个数据库之间的函数很多不⼀样.sqlserver的数据库中的DateDiff 函数⽤法解释如下:
描述
返回两个⽇期之间的时间间隔。
语法
DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])
DateDiff 函数的语法有以下参数:
参数 描述
interval 必选。字符串表达式,表⽰⽤于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2 必选。⽇期表达式。⽤于计算的两个⽇期。
firstdayofweek 可选。指定星期中第⼀天的常数。如果没有指定,则默认为星期⽇。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定⼀年中第⼀周的常数。如果没有指定,则默认为 1 ⽉ 1 ⽇所在的星期。有关数值,请参阅“设置”部分。
设置
interval 参数可以有以下值:
设置 描述
yyyy 年
q 季度
m ⽉
y ⼀年的⽇数
d ⽇
w ⼀周的⽇数
ww 周
h ⼩时
m 分钟
s 秒
firstdayofweek 参数可以有以下值:
常数 值 描述
vbUseSystem 0 使⽤区域语⾔⽀持 (NLS) API 设置。
vbSunday 1 星期⽇(默认)
vbMonday 2 星期⼀
vbTuesday 3 星期⼆
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
常数 值 描述
vbUseSystem 0 使⽤区域语⾔⽀持 (NLS) API 设置。
vbFirstJan1 1 由 1 ⽉ 1 ⽇所在的星期开始(默认)。
Sqlserver常用函数例子说明
Sqlserver常⽤函数例⼦说明
在操作SQLServer的时候, 很多时候记不住具体的函数如何使⽤, 查找联机帮助还是嫌⿇烦, 且有很多时候例⼦也不好懂, 下⾯对每个常⽤的函
数⽤⽤例⼦说明,⼀⽬了然,你⾃⼰在数据库中执⾏⼀下,结果就知道什么回事了
--字符串功能
--substring
print substring('iamagoodperson',1,5)
select substring('iamagoodperson',1,5)
--upper
select upper('he is a good person')
--lower
select LOWER('this is an VERY interesting job')
--ltrim
select ltrim(' i am a good person')
--rtrim
select rtrim(' heihei,i do not know why it likes this ')
--replace
select replace('iwanttoaskyou','ttoa','i love you')
--stuff
select stuff('我的名字是朱旭杰',6,8,'summer')
--Date/Time Fuction
--getdate()
select getdate() as 'today'
--dateadd()
select dateadd(yy,10,getdate())
--datediff()
select datediff(yy,'1982/5/3',getdate()) as
--datepart()
select datepart(dw,getdate())
select datepart(yy,getdate())
select datepart(mm,getdate())
select datepart(dd,getdate())
select datepart(ss,getdate())
