SQL SERVER2008函数大全

合集下载

sqlserver常用函数

sqlserver常用函数

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开发人员的工作,使他们能够更轻松地处理和管理数据。

- 1 -。

sqlserver 高级函数

sqlserver 高级函数

SQL Server 提供了许多高级函数,这些函数可以帮助您更有效地处理和操作数据。

以下是一些常用的SQL Server 高级函数:1.聚合函数:如SUM(), AVG(), COUNT(), MAX(), MIN()等,用于对一组值执行计算。

2.字符串函数:如CONCAT(), LEFT(), RIGHT(), CHARINDEX(), REPLACE(), SUBSTRING()等,用于处理和操作字符串数据。

3.日期和时间函数:如GETDATE(), DATEPART(), DATEDIFF(), DATEADD(), YEAR(), MONTH(), DAY ()等,用于处理和操作日期和时间数据。

4.转换函数:如CAST(), CONVERT(),用于在数据类型之间转换数据。

5.数学函数:如ROUND(), CEILING(), FLOOR(), ABS(), SQRT()等,用于执行数学计算。

6.条件函数:如CASE语句, COALESCE(), NULLIF()等,用于基于条件执行逻辑操作。

7.XML 函数:如XMLSERIALIZE(), XMLQUERY(), XMLDUMPELEMENTS()等,用于处理XML 数据。

8.其他高级函数:如PIVOT和UNPIVOT,用于将行转换为列或列转换为行。

9.分析函数:如RANK(), DENSE_RANK(), ROW_NUMBER(), LAG(), LEAD()等,用于执行窗口函数操作。

10.表值函数:如TVFs (Table-Valued Functions),允许您创建返回表的结果集的自定义函数。

11.CLR 集成:通过 .NET CLR (Common Language Runtime) 集成,可以在SQL Server 中编写C# 或其他 .NET 语言代码并执行它们。

SQLSERVER函数大全

SQLSERVER函数大全

SQL SERVER函数大全SQL SERVER命令大全SQLServer和Oracle的常用函数对比1.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.23466.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 18.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:SELECT PI() value 3.1415926535897931O:不知道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 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较-------------------21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual23.子串位置--返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊子串的位置--返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR>select INSTR('sdsfasdqe','sd',1,2) value from dual 返回624.求子串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.子串代替返回aijklmnefS:SELECT STUFF('abcdef', 2, 3, 'ijklmn') valueO:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual26.子串全部替换S:没发现O:select Translate('fasdbfasegas','fa','我' ) value from dual27.长度S:len,datalengthO:length28.大小写转换lower,upper29.单词首字母大写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高--------------日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减37.求日期S:select convert(char(10),getdate(),20) valueO:select trunc(sysdate) value from dualselect to_char(sysdate,'yyyy-mm-dd') value from dual38.求时间S:select convert(char(8),getdate(),108) valueO:select to_char(sysdate,'hh24:mm:ss') value from dual39.取日期时间的其他部分S:DATEPART 和DATENAME 函数(第一个参数决定)O:to_char函数第二个参数决定参数----------下表需要补充---------------year yy, yyyyquarter 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 dual41.本星期的某一天(比如星期日)S:不知道O:SELECT Next_day(sysdate,7) vaule FROM DUAL;42.字符串转时间S:可以直接转或者select cast('2004-09-08'as datetime) valueO: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) valueO:直接用两个日期相减(比如d1-d2=12.3)SELECT (d1-d2)*24*60*60 vaule FROM DUAL;44.根据差值求新的日期(比如分钟)S:select dateadd(mi,8,getdate()) valueO: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) orADD_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 CONVERT16进制转换为2进制HEX_TO_RAW CONVERT2进制转换为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 ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)T_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 --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y' else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’then e_wage*1.08when job_level = ’2’then e_wage*1.07when job_level = ’3’then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex 宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)---------只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) ---------排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)---------子查询---------除非能确保内层select只返回一个行的值,---------否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname --------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id --------左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id --------右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx") value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name -----------删除表中所有行,仍保持表的完整性drop table table_name ---------------完全删除表***alter table*** ---修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ----显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... -----实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ----删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere 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的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------------------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------------------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date> )--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date> )--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date> ) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date> ) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'> ) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id> ) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name]}--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value> ) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2> )--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值。

sql server 数学函数

sql server 数学函数

sql server 数学函数
在 SQL Server 中,有许多数学函数可用于执行各种数学计算。

以下是一些常用的 SQL Server 数学函数:
1. 聚合函数 (Sum、Count、Average、Max、Min):用于计算一列或多列的总和、计数、平均数、最大值和最小值。

2. 平方根函数 (Square Root):用于计算一个数的平方根。

3. 正弦函数 (Sin):用于计算一个数的正弦值。

4. 余弦函数 (Cos):用于计算一个数的余弦值。

5. 正切函数 (Tan):用于计算一个数的正切值。

6. 割函数 (Georgius):用于计算一个数的割函数。

7. 对数函数 (Log):用于计算一个数的对数。

8. 指数函数 (Exp):用于计算一个数的指数。

9. 逆指数函数 (Inv Expo):用于计算一个数的逆指数。

10. 三角函数 (Sin、Cos、Tan、Georgius、Arcsin、Arccos、arctan):用于计算三角函数。

11. 绝对值函数 (Abs):用于计算一个数的绝对值。

12. 条件函数 (If):用于根据指定条件返回不同的结果。

这些函数只是 SQL Server 中众多数学函数的一部分,SQL Server 还支持其他数学函数,如指数对数函数 (ExpLog)、自然对数函数 (Log)、反三角函数 (InvTan)、部分分式函数 (Frac) 等。

SQL--Server--常用公式与函数整理

SQL--Server--常用公式与函数整理

SQL--Server常用公式与函数整理一、算术运算符SQL*Server*支持基本的算术运算符,如加(+)、减(-)、乘()、除(/)和取余(%)等。

这些运算符可以直接在*SQL*查询中使用,用于数字和日期类型的数据计算。

示例:sqlSELECT*5+3AS加法结果;--输出结果为8SELECT*10-5AS减法结果;--输出结果为5SELECT*32AS乘法结果;--输出结果为6SELECT*10/2AS除法结果;--输出结果为5SELECT*11%2AS取余结果;--输出结果为1二、字符串函数字符串函数主要用于字符串的处理和操作,包括截取、连接、查找、替换、转换等。

常用的字符串函数有:*LEN(string_expression):返回字符串的长度。

*LEFT(string_expression,*number_of_chars):返回字符串最左侧的指定数量的字符。

*RIGHT(string_expression,*number_of_chars):返回字符串最右侧的指定数量的字符。

*SUBSTRING(string_expression,*start,*length):返回字符串的子字符串。

*CHARINDEX(substring,*expression*[,*start_location]):返回子字符串在表达式中的起始位置。

REPLACE(string_expression,*search_string,*replacement_string):在字符串中替换指定的子字符串。

*LOWER(string_expression):将字符串转换为小写。

*UPPER(string_expression):将字符串转换为大写。

示例:sqlSELECT*LEN('Hello*World')*AS*字符串长度;*--*输出结果为*11SELECT*LEFT('Hello*World',*5)*AS*左侧子串;*--*输出结果为*Hello三、日期函数日期函数用于日期和时间的处理和计算,常用的日期函数有:*GETDATE():返回当前日期和时间。

SQLServer新增函数大全(各版本)

SQLServer新增函数大全(各版本)

SQLServer新增函数⼤全(各版本)SQL Server 2017CONCAT_WS ( separator, argument1, argument2 [, argumentN]... ) --采⽤可变数量的字符串⾃变量,并将它们串联(或联接)成单个字符串。

⽤第⼀个参数指定的分隔符分隔连接的字符串值TRANSLATE ( inputString, characters, translations) --在第⼆个参数中指定的某些字符转换为第三个参数中指定的字符⽬标集后,返回作为第⼀个参数提供的字符串SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()'); --结果:2*(3+4)/(7-2)TRIM ( string ) --删除字符串开头和结尾的空格字符 char(32) 或其他指定字符STRING_AGG ( expression, separator ) [ WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] ) ] --串联字符串表达式的值,并在其间放置分隔符值。

不能在字符串末尾添加分隔符SELECT STRING_AGG(CONVERT(NVARCHAR(max), FirstName), CHAR(13)) AS csv FROM Person.Person;--⽣成姓名列表,并将其以回车符分隔,结果中不返回 name 单元格中的 NULL 值SELECT STRING_AGG(CONVERT(NVARCHAR(max), ISNULL(FirstName,'N/A')), ',') AS csv FROM Person.Person;--返回以逗号分隔的姓名,并使⽤“N/A”替换 null 值SQL Server 2016STRING_SPLIT ( string , separator ) --⼀个表值函数,它根据指定的分隔符将字符串拆分为⼦字符串⾏SELECT value FROM STRING_SPLIT('clothing,road,,touring,bike', ',');SELECT ProductId, Name, value FROM Product CROSS APPLY STRING_SPLIT(Tags, ',');STRING_ESCAPE( text , type ) --对⽂本中的特殊字符进⾏转义并返回有转义字符的⽂本SELECT STRING_ESCAPE('\ / \\ " ', 'json') AS escapedText;DATEDIFF_BIG ( datepart , startdate , enddate ) --返回 startdate 与 enddate 之间的 bigint 差异,以 datepart 设置的边界表⽰inputdate AT TIME ZONE timezone --将 inputdate 转换为⽬标时区中相应的 datetimeoffset 值SELECT CONVERT(DATETIME2(0), '2015-03-29T01:01:00', 126) AT TIME ZONE 'Central European Standard Time';--结果:2015-03-29 01:01:00 +01:00COMPRESS ( expression ) --使⽤ GZIP 算法压缩输⼊表达式。

SQLSERVER内部函数大全

SQLSERVER内部函数大全
sqlserver内部函数是sql数据库中非常重要的一类函数下面就为您介绍sqlserver内部函数如果您对此方面感兴趣的话不妨一看
SQLSERVER内 部 函 数 大 全
SQL SERVER内部函数是SQL数据库中非常重要的一类函数,下面就为您介绍SQL SERVER内部函数,如果您对此方面感兴趣的话,不妨一看。 SQL SERIONS select @@CURSOR_ROWS select @@DATEFIRST SELECT @@DBTS select @@ERROR select @@rowcount select @@FETCH_STATUS SELECT @@CPU_BUSY AS 'CPU ms', GETDATE() AS 'As of' sELECT @@IDENTITY AS 'Identity' sELECT @@IDLE AS 'Idle ms', GETDATE() AS 'As of' SELECT @@IO_BUSY AS 'IO ms', GETDATE() AS 'As of' SELECT @@LANGID AS 'Language ID' SELECT @@LANGUAGE AS 'Language Name' SELECT @@LOCK_TIMEOUT SELECT @@MAX_CONNECTIONS SELECT @@MAX_PRECISION select @@NESTLEVEL AS 'Inner Level' select @@OPTIONS SELECT @@PACKET_ERRORS SELECT @@PACK_RECEIVED SELECT @@PACK_SENT SELECT @@PROCID AS 'ProcID' SELECT @@REMSERVER SELECT @@SERVERNAME SELECT @@SERVICENAME SELECT @@SPID SELECT @@TEXTSIZE SET TEXTSIZE 2048 SELECT @@TEXTSIZE SELECT @@TIMETICKS SELECT @@TOTAL_ERRORS AS 'Errors', GETDATE() AS 'As of' SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of' SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of' select @@TRANCOUNT SELECT @@VERSION select @@FETCH_STATUS

SQL server常用函数

SQL server常用函数

一、.修改查询出来的字段属性①、cast 和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式cast一般更容易使用,convert的优点是可以格式化日期和数值.⑴、cast()语句语句形式为:select cast(字段as int) as 自定义字段名from table1查询table1的字段内容并且将数据类型转换为int类型显现出来,重新附一个别名⑵、Convert() 语句⑴语句形式为:select convert(int,字段) as 自定义字段名from table2查询table1的字段内容并且将数据类型转换为int类型显现出来,重新附一个别名⑵语句形式为:select convert(char(10),getdate(),102)获取当前日期,并且格式为yy.mm.dd(最多占10个字节)第三参数如下:日期类型格式10003 19 20084:45PM10103/19/20081022008.03.1910319/03/200810419.03.200810519-03-200810619 03 200810703 19, 200810816:45:0010903 19 20084:45:00:11003-19-20081112008/03/191122008031911319 03 2008 16:45:00:11416:45:00:000②、str()函数--数值转换字符类型函数格式:str(参数1(必填),参数2(选填),参数3(选填))参数1 数值字段,参数2 指定的总长度(包括逗号,小数,整数与空,默认为10),参数3 保留的小数位数转换规则:先看整数部分是否满足转换长度,只要长度值小于整数长度就返回“*”;若长度值大于整数长度,再看小数部分。

小数部分能按要求转换后仍不足转换长度,再在左侧补空格二、对小数值进行取值①、round() 函数--遵循四舍五入保留指定的小数位函数格式:round(参数1,参数2)参数1:数值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、日期和时间函数
函数名称 参数 示例 说明 dateadd(日期部分,数字,日期) select dateadd(year,45,'1990-12-11') 返回 2035-12-11 00:00:00.000 select dateadd(month,45,'1990-12-11') 返回 1994-09-11 00:00:00.000 select dateadd(mm,45,'1990-12-11') 返回 1994-09-11 00:00:00.000 select dateadd(qq,12,'1990-12-11') 返回 1993-12-11 00:00:00.000 select dateadd(hh,12,'1990-12-11') 返回 1990-12-11 12:00:00.000 select dateadd(yy,-12,'1990-12-11') 返回 1978-12-11 00:00:00.000 返回给指定日期加上一个时间间隔后的新的日期值。 数字:用于与指定的日期部分相加的值。如果指定了非整数值, 则将舍弃该值的小数部分,舍弃时不遵循四舍五入。
month(日期) select month('2007-12-11')返回 12 说明:返回一个整数,表示指定日期的月的部分。 等价于 datepart(mm, 日期) year(日期) select year('2007-12-11')返回 2007 返回一个整数,表示指定日期的年的部分。 等价于 datepart(yy, 日期) getutcdate 无参数 select getutcdate() 返回 2009-04-28 10:57:24.153 说明:返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT)。 三、日期部分(指定要返回新值的日期的组成部分。下表列出了 Microsoft SQL Server 2008 可识别的日期部分及其缩写。) 日期部分 含义 缩写 year 年 yy, yyyy quarter 季 qq, q month 月 mm, m dayofyear 天(请看函数中的说明)dy, y day 天(请看函数中的说明)dd, d week 星期 wk, ww weekday 天(请看函数中的说明)dw, w hour 小时 hh minute 分钟 mi, n second 秒 ss, s millisecond 毫秒 ms
注意在截断时遵循四舍五入总长度。它包括小数点、符号、数字以及空格。默认值为 10。 小数点后最多保留 16 位。默认不保留小数点后面的数字。 stuff(字符串表达式 1,开始位置,长度,字符串表达式 2) select stuff('abcdef',2,2,'123') 返回 a123def 说明:在字符串表达式 1.中在指定的开始位置删除指定长度的字符,并在指定的开始位置 处插入字符串表达式 2 返回新字符串。 substring(字符串表达式,开始位置,长度) mid select substring('abcdef',2,2) 返回 bc 说明:返回子字符串 replace(字符串表达式 1,字符串表达式 2,字符串表达式 3) Select replace('abcttabchhabc','abc','123') 返回 123tt123hh123 说明:1.用字符串表达式 3 替换字符串表达式 1 中出现的所有字符串表达式 2 的匹配项。 返回新的字符串。
四、 数学函数
函数名称 参数 示例 说明 abs(数值表达式) select abs(-23.4)返回 23.4 说明:返回指定数值表达式的绝对值(正值) pi 无参数
select pi()返回 3.14159265358979 说明:返回π的值 cos(浮点表达式) select cos(pi()/3)返回 0.5 说明:返回指定弧度的余弦值 sin(浮点表达式) select sin(pi()/6)返回 0.5 说明:返回指定弧度的正弦值 cot(浮点表达式) select cot(pi()/4)返回 1 说明:返回指定弧度的余切值。 tan(浮点表达式) select tan(pi()/4)返回 1 说明:返回指定弧度的正切值。 acos(浮点表达式) select acos(0.5)返回 1.0471975511966 说明:返回其余弦是所指定的数值表达式的弧度,求反余弦。 asin(浮点表达式) select asin(0.5)返回 0.523598775598299 说明:返回其正弦是所指定的数值表达式的弧度,求反正弦。 atan(浮点表达式) select atan(1)返回 0.785398163397448 返回其正切是所指定的数值表达式的弧度,求反正切。 degrees(数值表达式) select degrees(pi()/4) 返回 45 说明:返回以弧度指定的角的相应角度。 radians(数值表达式) select radians(180.0) 返回 3.1415926535897931 说明:返回指定度数的弧度值。注意如果传入整数值则返回的结果将。 会省略小数部分 exp(浮点表达式) select exp(4)返回 54.5981500331442 返回求 e 的指定次幂,e=2.718281…
SQL Server2008 函数大全(完整版)
SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。
一、字符串函数
函数 名称 参数 示例 说明 ascii(字符串表达式) select ascii('abc') 返回 97 说明:返回字符串中最左侧的字符的 ASCII 码。 char(整数表达式) select char(100) 返回 d 说明:把 ASCII 码转换为字符。 介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。 charindex(字符串表达式 1, 字符串表达式 2[,整数表达式]) instr select charindex('ab','BCabTabD') 返回 3 select charindex('ab','BCabTabD',4) 返回 6 说明:在字符串 2 中查找字符串 1,如果存在返回第一个匹配的位置,如果不存在返回 0。 如果字符串 1 和字符串 2 中有一个是 null 则返回 null。可以指定在字符串 2 中查找的起 始位置。 patindex(字符串表达式 1,字符串表达式 2) select patindex('%ab%','123ab456')返回 4 select patindex('ab%','123ab456')返回 0 select patindex('___ab%','123ab456')返回 1 select patindex('___ab_','123ab456')返回 0 说明:在字符串表达式 1 中可以使用通配符,此字符串的第一个字符和最后一个字符通常 是%。%表示任意多个字符,_表示任意字符返回字符串表达式 2 中字符串表达式 1 所指定 模式第一次出现的起始位置。没有找到返回 0。 difference(字符串表达式 1,字符串表达式 2) select difference('Green','Greene')返回 4 返回一个 0 到 4 的整数值,指示两个字符表达式的之间的相似程度。 0 表示几乎不同或完全不同, 4 表示几乎相同或完全相同。 说明:注意相似并不代表相等 left(字符串表达式,整数表达式) select left('abcdefg',2) 返回 ab 说明:返回字符串中从左边开始达式) select right('abcdefg',2) 返回 fg 说明:返回字符串中从右边开始指定个数的字符。 len(字符串表达式) select len('abcdefg') 返回 7 select len('abcdefg') 返回 7 说明:返回指定字符串表达式的字符数,其中不包含尾随空格。 lower(字符串表达式) lcase select lower('ABCDEF') 返回 abcdef 说明:返回大写字符数据转换为小写的字符表达式。 upper(字符串表达式) ucase select upper('abcdef')返回 ABCDEF 说明:返回小写字符数据转换为大写的字符表达式。 ltrim(字符串表达式) select ltrim('abc')返回 abc 说明:返回删除了前导空格之后的字符表达式。 rtrim(字符串表达式) select rtrim('abc')返回 abc 说明:返回删除了尾随空格之后的字符表达式。 reverse(字符串表达式) select reverse('abcde')返回 edcba 说明:返回指定字符串反转后的新字符串 space(整数表达式) select 'a'+space(2)+'b' 返回 a b 说明:返回由指定数目的空格组成的字符串。 str(float 型小数[,总长度[,小数点后保留的位数]]) select str(123.451)返回 123(123 前面有空格) select str(123.451,3)返回 123 select str(123.451,7,3)返回 123.451 select str(123.451,7,1)返回 123.5 select str(123.451,5,3)返回 123.5 select str(123.651,2)返回** 说明:返回由数字转换成的字符串。返回字符数不到总长度的前面补空格,超过总长度的截 断小数位。如果需要截断整数位则返回**。
相关文档
最新文档