MSSQL常用函数及技巧
- 格式:docx
- 大小:20.90 KB
- 文档页数:4
mssql 查询语法
MSSQL(Microsoft SQL Server)是一种关系型数据库管理系统,其查询语法与标准SQL(Structured Query Language)类似。
以下是常用的MSSQL查询语法:
1. SELECT语句:用于从表中检索数据。
示例:SELECT 列名1, 列名2 FROM 表名WHERE 条件;
2. INSERT语句:用于向表中插入新的行数据。
示例:INSERT INTO 表名(列名1, 列名2) VALUES (值1, 值
2);
3. UPDATE语句:用于更新表中现有行的数据。
示例:UPDATE 表名SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;
4. DELETE语句:用于从表中删除行数据。
示例:DELETE FROM 表名WHERE 条件;
5. JOIN语句:用于合并多个表的数据。
示例:SELECT 列名FROM 表名1 INNER JOIN 表名2 ON 表名1.列名= 表名2.列名;
6. GROUP BY语句:用于对结果进行分组统计。
示例:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;
7. ORDER BY语句:用于对结果进行排序。
示例:SELECT 列名FROM 表名ORDER BY 列名
ASC/DESC;
8. WHERE语句:用于筛选满足条件的数据。
示例:SELECT 列名FROM 表名WHERE 条件;
以上是一些常用的MSSQL查询语法,希望对您有帮助。
如果有更具体的问题,请提供详细信息以便给出更精确的答案。
mssql中percent的用法-回复MSSQL中percent是一个常用的函数,用于将一个数值转换为百分比形式。
在本文中,我将一步一步地回答关于MSSQL中percent函数的使用方法和用途。
第一步:了解percent函数的语法和参数在开始之前,我们需要了解percent函数的语法和参数。
percent函数的语法如下:percent(numeric_expression,decimal_places)其中,numeric_expression是要转换为百分比形式的数值,decimal_places是可选的参数,用于指定小数点后的位数,默认为0。
第二步:理解percent函数的返回值percent函数的返回值是一个nvarchar类型的字符串,表示百分比形式的数值。
如果没有指定decimal_places参数,则返回整数形式的百分比。
第三步:使用percent函数转换数值为百分比形式接下来,我们可以使用percent函数将数值转换为百分比形式。
以下是一些使用percent函数的示例:将0.5转换为百分比形式SELECT percent(0.5)返回结果为50将0.75转换为百分比形式,并保留两位小数SELECT percent(0.75, 2)返回结果为75.00将0.125转换为百分比形式,并保留一位小数SELECT percent(0.125, 1)返回结果为12.5从以上示例中可以看出,percent函数可以根据指定的参数将数值转换为百分比形式,并进行小数位数的控制。
第四步:应用percent函数的实际用途现在,我们来探讨一下percent函数在实际中的应用场景。
1. 数据可视化:在数据分析和数据可视化的过程中,经常需要将数值转换为百分比形式,以便更直观地展示数据。
2. 报表制作:在报表中,我们通常需要将某些指标以百分比的形式展示,以便更好地对比和分析数据。
3. 数据处理:在数据处理过程中,我们可能需要将原始数据转换为百分比形式,以便更好地进行计算和比较。
mssqlif函数的使用方法在MSSQL中,IF函数可以用来实现条件判断,根据条件的真假执行相应的操作。
IF函数的基本语法如下:```IF conditionBEGINstatement1;ENDELSEBEGINstatement2;END```其中,`condition`是一个布尔表达式,可以是任何返回布尔值的表达式或逻辑操作。
`statement1`和`statement2`是需要执行的SQL语句,可以是单个语句或一个语句块。
在IF函数的语法中,可以省略ELSE部分,只使用IF和END来实现条件为真时的操作。
以下是一些使用IF函数的例子:1. 判断一些数值是否大于0,如果是,则输出"Positive",否则输出"Negative":BEGINPRINT 'Positive';ENDELSEBEGINPRINT 'Negative';END```输出结果为"Negative"。
2.判断一些数值是否为0,如果是,则将其置为1:```sqlBEGINEND```输出结果为13. 判断一些字符串是否为空,如果是,则输出"Empty",否则输出"NotEmpty":```sqlPRINT 'Empty';ENDELSEBEGINPRINT 'NotEmpty';END```输出结果为"Empty"。
4.判断一些条件是否满足,如果是,则执行一组SQL语句:```sqlBEGINPRINT 'Flag is true.';SELECT * FROM TableName;END```输出结果为"Flag is true."以及TableName表中的所有数据。
5.在查询语句中使用IF函数,实现根据不同条件返回不同结果:```sqlSELECT * FROM TableA;ENDBEGINSELECT * FROM TableB;ENDELSEBEGINSELECT * FROM TableC;END```总结:IF函数是MSSQL中用于实现条件判断的函数,可以根据条件的真假执行相应的操作。
sql常用函数及用法SQL是一种使用结构化查询语言来管理关系数据库系统的编程语言。
在SQL中,有许多常用函数可用于在查询中计算结果值。
常用函数通常包括聚合函数、字符串函数、日期和时间函数、数学函数、条件函数等。
以下是SQL常用函数及其用法的参考内容。
1. 聚合函数聚合函数在SQL中用于计算和汇总数据。
最常用的聚合函数是SUM、AVG、MAX和MIN。
例如:SELECT SUM(salary) FROM employee;这将返回员工表中所有员工的总工资。
2. 字符串函数字符函数用于处理文本数据。
最常用的字符函数是LEN、UPPER、LOWER、SUBSTRING和CONCAT。
例如:SELECT UPPER(last_name) FROM employee;这将返回所有员工的姓氏的大写形式。
3. 日期和时间函数日期和时间函数用于处理日期和时间数据。
最常用的日期和时间函数是NOW、YEAR、MONTH、DAY和HOUR。
例如:SELECT YEAR(hire_date) FROM employee;这将返回每个员工被雇用的年份。
4. 数学函数数学函数用于计算数值数据。
最常用的数学函数是ABS、ROUND、CEILING和FLOOR。
例如:SELECT ABS(salary) FROM employee;这将返回员工工资的绝对值。
5. 条件函数条件函数根据给定的条件返回不同的结果。
最常用的条件函数是IF、CASE和COALESCE。
例如:SELECT IF(salary>50000, "High", "Low") FROM employee;这将返回“高”或“低”,具体取决于每个员工的工资是否大于50000。
总的来说,SQL中的常用函数可以大大简化数据处理和查询操作。
在实际使用时,根据需要选择适当的函数和参数可以大大提高工作效率。
SQL常见函数以及使用1.COUNT函数:COUNT函数用于统计符合一些条件的行数,常用于查询一些表中一些列的行数。
示例:SELECT COUNT(*) FROM table_name;SELECT COUNT(column_name) FROM table_name WHERE condition;2.AVG函数:AVG函数用于计算一些数值字段的平均值,常用于统计一些表中一些列的平均值。
示例:SELECT AVG(column_name) FROM table_name;3.SUM函数:SUM函数用于计算一些数值字段的总和,常用于统计一些表中一些列的总和。
示例:SELECT SUM(column_name) FROM table_name;4.MAX函数:MAX函数用于返回一些字段的最大值,常用于查找一些表中一些列的最大值。
示例:SELECT MAX(column_name) FROM table_name;5.MIN函数:MIN函数用于返回一些字段的最小值,常用于查找一些表中一些列的最小值。
示例:SELECT MIN(column_name) FROM table_name;6.UPPER函数:UPPER函数用于将一些字段的值转换为大写。
示例:SELECT UPPER(column_name) FROM table_name;7.LOWER函数:LOWER函数用于将一些字段的值转换为小写。
示例:SELECT LOWER(column_name) FROM table_name;8.CONCAT函数:CONCAT函数用于连接多个字符串,将它们串联在一起。
示例:SELECT CONCAT(column1, column2) FROM table_name;9.SUBSTRING函数:SUBSTRING函数用于提取一些字段的子字符串。
示例:SELECT SUBSTRING(column_name, start_position, length) FROM table_name;10.DATE函数:DATE函数用于提取日期类型字段的日期部分。
sql数字函数SQL数值函数是用于处理数字数据的函数。
这些函数能够对数字数据进行各种计算,包括四舍五入、取整、绝对值、平方根、指数函数、对数函数、三角函数等等。
利用这些函数,我们能够在SQL语句中对数字数据进行高效处理和分析。
下面就是一些常用的SQL数字函数:1. ABS函数ABS函数用于计算一个数字的绝对值。
例如,ABS(-5)将返回5。
2. ROUND函数ROUND函数用于将一个数字四舍五入到指定的小数位数。
例如,ROUND(3.14159, 2)将返回3.14。
3. CEILING函数CEILING函数用于向上取整到最近的整数。
例如,CEILING(3.14159)将返回4。
4. FLOOR函数FLOOR函数用于向下取整到最近的整数。
例如,FLOOR(3.14159)将返回3。
5. POWER函数POWER函数用于计算一个数的指数。
例如,POWER(2, 3)将返回8(即2的3次方)。
6. SQRT函数SQRT函数用于计算一个数的平方根。
例如,SQRT(16)将返回4。
7. LOG函数LOG函数用于计算一个数的自然对数。
例如,LOG(10)将返回2.302585。
8. EXP函数EXP函数用于计算一个数的指数函数。
例如,EXP(2)将返回7.389056(即自然常数e的2次方)。
9. SIN函数、COS函数和TAN函数这些函数分别用于计算一个角度的正弦、余弦和正切值。
例如,SIN(45)将返回0.707107,COS(45)将返回0.707107,TAN(45)将返回1。
除了上述常用的SQL数字函数外,还有很多其他的函数可供使用,如RAND函数(生成随机数)、MOD函数(取模运算)等等。
总之,数字函数在SQL语句中有着广泛的应用,它们能够方便地处理数字数据并进行各种数值计算。
因此,对于SQL编程人员来说,熟练掌握这些数字函数是非常重要的。
mssql正则用法-回复MSSQL (Microsoft SQL Server)是一种关系型数据库管理系统,它在处理和管理大量数据时非常强大和可靠。
它支持使用正则表达式来优化和增强数据处理和查询操作,以提高数据库的性能和灵活性。
在这篇文章中,我们将一步一步地介绍如何在MSSQL中使用正则表达式。
第一步:了解正则表达式的基本语法在开始学习如何在MSSQL中使用正则表达式之前,我们需要了解正则表达式的基本语法。
正则表达式是一种强大的模式匹配工具,它可以用来描述,搜索和替换文本。
以下是一些常用的正则表达式元字符和符号:- `.`:匹配除换行符之外的任何字符。
- `*`:匹配前一个字符的零个或多个实例。
- `+`:匹配前一个字符的一个或多个实例。
- `?`:匹配前一个字符的零个或一个实例。
- `^`:匹配行或字符串的开头。
- ``:匹配行或字符串的结尾。
- `[]`:定义一个字符类,其中包含可以匹配的字符。
- `()`:定义一个带有子表达式的组。
这只是正则表达式的基础知识,还有更多高级的用法和特殊符号可以用于更复杂的模式匹配。
现在,让我们看看如何在MSSQL中应用这些知识。
第二步:使用正则表达式进行模式匹配和搜索在MSSQL中,可以使用`LIKE`关键字进行模式匹配和搜索,但它只支持简单的通配符,无法实现复杂的模式匹配。
为了实现更灵活和高级的模式匹配,我们需要使用正则表达式函数。
MSSQL提供了一些正则表达式函数,最常用的是`PATINDEX`和`LIKE`。
`PATINDEX`函数用于在字符串中查找模式,而`LIKE`函数使用正则表达式模式匹配字符串。
以下是使用`PATINDEX`函数查找模式的示例:SELECT PATINDEX('[0-9]', 'Hello123World')该查询将返回字符串`Hello123World`中第一个数字(在这种情况下是1)的位置。
以下是使用`LIKE`函数进行模式匹配的示例:SELECT * FROM table_name WHERE column_name LIKE '[0-9]'该查询将检索`table_name`表中,`column_name`列包含至少一个数字的所有记录。
sql中加法的函数SQL中的加法函数在SQL中,加法是一种常用的数学运算操作。
SQL提供了多种加法函数,用于对数值数据进行加法运算。
本文将介绍几种常见的SQL 加法函数,并详细解释它们的使用方法和注意事项。
1. SUM函数SUM函数是SQL中最常用的加法函数之一。
它用于计算指定列中数值的总和。
例如,我们有一个名为score的表,其中包含了学生的成绩信息,我们可以使用SUM函数计算所有学生的总分。
示例代码:SELECT SUM(score) AS total_score FROM score;上述代码中,我们使用了SUM函数来计算score列中所有值的总和,并使用别名total_score来表示总分。
执行上述代码后,将会返回一个包含总分的结果集。
2. ADD函数ADD函数是SQL Server中的加法函数,用于对两个数值进行加法运算。
它的语法如下:ADD(数字1, 数字2)示例代码:SELECT ADD(5, 3) AS result;上述代码中,我们使用ADD函数对数字5和3进行加法运算,并使用别名result来表示结果。
执行上述代码后,将会返回一个包含结果的结果集。
3. CONCAT函数CONCAT函数是MySQL中的加法函数,用于将多个字符串进行拼接。
它的语法如下:CONCAT(字符串1, 字符串2, ...)示例代码:SELECT CONCAT('Hello', ' ', 'World') AS result;上述代码中,我们使用CONCAT函数将字符串'Hello'、空格和字符串'World'进行拼接,并使用别名result来表示结果。
执行上述代码后,将会返回一个包含拼接结果的结果集。
4. NVL函数NVL函数是Oracle中的加法函数,用于处理空值。
它的语法如下:NVL(表达式, 替代值)示例代码:SELECT NVL(price, 0) AS result FROM products;上述代码中,我们使用NVL函数将price列中的空值替换为0,并使用别名result来表示结果。
MSSQL⾃定义函数详解⾃定义函数分为:标量值函数或表值函数如果 RETURNS ⼦句指定⼀种标量数据类型,则函数为标量值函数。
可以使⽤多条 Transact-SQL 语句定义标量值函数。
如果 RETURNS ⼦句指定 TABLE,则函数为表值函数。
表值函数⼜可分为:内嵌表值函数(⾏内函数)或多语句函数如果 RETURNS ⼦句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数。
如果 RETURNS ⼦句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数。
标量值函数⽰例CREATE FUNCTION dbo.Foo()RETURNS INTASBEGINDECLARE @n INTSELECT @n = 3RETURN @nEND内嵌表值函数⽰例CREATE FUNCTION dbo.Foo()RETURNS TABLEASRETURNSELECT id,titleFROM msgs多语句表值函数⽰例(部分)CREATE FUNCTION dbo.fn_FindReports (@InEmpID INTEGER)RETURNS @retFindReports TABLE(EmployeeID int primary key NOT NULL,Name nvarchar(255) NOT NULL,Title nvarchar(50) NOT NULL,EmployeeLevel int NOT NULL,Sort nvarchar (255) NOT NULL)--Returns a result set that lists all the employees who report to the--specific employee directly or indirectly.*/ASBEGINWITH DirectReports(Name, Title, EmployeeID, EmployeeLevel, Sort) AS(SELECT CONVERT(Varchar(255), c.FirstName + ' ' + stName),e.Title,e.EmployeeID,1,CONVERT(Varchar(255), c.FirstName + ' ' + stName)FROM HumanResources.Employee AS eJOIN Person.Contact AS c ON e.ContactID = c.ContactIDWHERE e.EmployeeID = @InEmpIDUNION ALLSELECT CONVERT(Varchar(255), REPLICATE ('| ' , EmployeeLevel) +c.FirstName + ' ' + stName),e.Title,e.EmployeeID,EmployeeLevel + 1,CONVERT (Varchar(255), RTRIM(Sort) + '| ' + FirstName + ' ' +LastName)FROM HumanResources.Employee as eJOIN Person.Contact AS c ON e.ContactID = c.ContactIDJOIN DirectReports AS d ON e.ManagerID = d.EmployeeID)-- copy the required columns to the result of the functionINSERT @retFindReportsSELECT EmployeeID, Name, Title, EmployeeLevel, SortFROM DirectReportsRETURNEND;GO在以下⽰例中,调⽤了此函数。
sql常用的五个函数SQL是一种用于管理关系型数据库的语言,它可以用来查询、插入、更新和删除数据。
在SQL中,函数是一种特殊的语句,它可以用来处理数据并返回结果。
在本文中,我们将介绍SQL常用的五个函数。
一、COUNT函数COUNT函数用于统计某个表中符合条件的记录数。
其基本语法如下:SELECT COUNT(column_name) FROM table_name WHERE condition;其中,column_name表示要统计的列名,table_name表示要统计的表名,condition表示统计条件。
例如,在一个学生信息表中,我们想要统计出性别为男性的学生人数,则可以使用如下语句:SELECT COUNT(*) FROM student WHERE gender='male';这条语句会返回一个数字,即男性学生人数。
二、SUM函数SUM函数用于对某个列进行求和操作。
其基本语法如下:SELECT SUM(column_name) FROM table_name WHERE condition;其中,column_name表示要求和的列名,table_name表示要求和的表名,condition表示求和条件。
例如,在一个销售记录表中,我们想要统计出所有销售额的总和,则可以使用如下语句:SELECT SUM(sales_amount) FROM sales_record;这条语句会返回一个数字,即所有销售额的总和。
三、AVG函数AVG函数用于对某个列进行求平均值操作。
其基本语法如下:SELECT AVG(column_name) FROM table_name WHERE condition;其中,column_name表示要求平均值的列名,table_name表示要求平均值的表名,condition表示求平均值条件。
例如,在一个学生成绩表中,我们想要统计出所有学生的平均成绩,则可以使用如下语句:SELECT AVG(score) FROM student_score;这条语句会返回一个数字,即所有学生的平均成绩。
sql常用函数及用法SQL(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。
在SQL中,有许多常用的函数,用于在查询和操作数据时进行数据处理和转换。
本文将介绍几种常用的SQL函数和它们的用法。
1. 算术函数:SQL提供了各种算术函数,用于执行数学运算。
常见的算术函数包括:- `ABS(x)`: 返回x的绝对值。
- `CEILING(x)`: 返回最小的整数,其值大于或等于x。
- `FLOOR(x)`: 返回最大的整数,其值小于或等于x。
- `ROUND(x, d)`: 返回将x四舍五入到d位小数的结果。
例如,假设有一个表`students`,存储了学生的成绩信息。
我们可以使用这些算术函数来计算某个学生的平均分或总分。
2. 字符串函数:SQL还提供了很多函数用于处理字符串。
一些常用的字符串函数包括:- `CONCAT(str1, str2)`: 将两个字符串连接起来。
- `UPPER(str)`: 将字符串转换为大写。
- `LOWER(str)`: 将字符串转换为小写。
- `LENGTH(str)`: 返回字符串的长度。
- `SUBSTRING(str, pos, len)`: 返回字符串从位置pos开始长度为len的子串。
例如,假设有一个表`employees`,存储了员工的姓名和地址。
我们可以使用这些字符串函数来进行模糊搜索或格式化输出。
3. 聚合函数:聚合函数用于对数据进行汇总和计算统计信息。
一些常见的聚合函数包括:- `COUNT(expr)`: 返回满足条件expr的行数。
- `SUM(expr)`: 返回指定列的总和。
- `AVG(expr)`: 返回指定列的平均值。
- `MIN(expr)`: 返回指定列的最小值。
- `MAX(expr)`: 返回指定列的最大值。
例如,假设有一个表`orders`,存储了客户的订单信息。
我们可以使用这些聚合函数来计算订单的数量、总金额或平均金额。
MySQL数据库的数值计算与统计分析函数MySQL是一种常用的数据库管理系统,具有强大的数值计算和统计分析功能。
本文将介绍MySQL数据库的数值计算与统计分析函数,包括常用的数学函数、聚合函数和统计函数。
一、数学函数1. ABS函数:返回一个数的绝对值。
例如:SELECT ABS(-10) 结果为10。
2. ROUND函数:将一个数值四舍五入到指定的小数位数。
例如:SELECT ROUND(3.14159, 2) 结果为3.14。
3. CEILING函数:返回不小于一个数的最小整数。
例如:SELECTCEILING(3.14159) 结果为4。
4. FLOOR函数:返回不大于一个数的最大整数。
例如:SELECTFLOOR(3.14159) 结果为3。
5. RAND函数:返回一个0到1之间的随机数。
例如:SELECT RAND() 结果为0.123456。
二、聚合函数1. COUNT函数:返回指定列的行数。
例如:SELECT COUNT(*) FROM 表名返回表中的总行数。
2. SUM函数:计算指定列的和。
例如:SELECT SUM(列名) FROM 表名计算该列的总和。
3. AVG函数:计算指定列的平均值。
例如:SELECT AVG(列名) FROM 表名计算该列的平均值。
4. MAX函数:返回指定列的最大值。
例如:SELECT MAX(列名) FROM 表名返回该列的最大值。
5. MIN函数:返回指定列的最小值。
例如:SELECT MIN(列名) FROM 表名返回该列的最小值。
三、统计函数1. VARIANCE函数:计算指定列的方差。
例如:SELECT VARIANCE(列名) FROM 表名计算该列的方差。
2. STDDEV函数:计算指定列的标准差。
例如:SELECT STDDEV(列名) FROM 表名计算该列的标准差。
3. COVAR_POP函数:计算两个列的总体协方差。
例如:SELECTCOVAR_POP(列名1, 列名2) FROM 表名计算列1和列2的总体协方差。
mssql replace 语句MSSQL中的REPLACE 函数用于在字符串中查找指定的子字符串,并将其替换为另一个字符串。
该函数可以在SELECT 语句、UPDATE 语句或INSERT 语句中使用。
REPLACE 函数的语法如下:REPLACE(string_expression,search_string, replacement_string)其中,string_expression 是要进行替换操作的字符串,search_string 是要查找的子字符串,replacement_string 是要替换的字符串。
以下是REPLACE 函数的一些示例用法:1. 在SELECT 语句中使用REPLACE 函数:SELECT column1, REPLACE(column2, 'search', 'replacement') ASnew_columnFROM table_name这个例子中,我们将列column2 中包含字符串'search' 的部分替换为'replacement'。
新的列名为new_column。
2. 在UPDATE 语句中使用REPLACE 函数:UPDATE table_nameSET column1 = REPLACE(column1, 'search', 'replacement')WHERE condition这个例子中,我们将表中列column1 中包含字符串'search' 的部分替换为'replacement'。
3. 在INSERT 语句中使用REPLACE 函数:INSERT INTO table_name (column1, column2)VALUES (value1, REPLACE(value2, 'search', 'replacement'))这个例子中,我们在插入数据时,将value2 中包含字符串'search' 的部分替换为'replacement'。
---常用语法--SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。
--一、基础--1、说明:创建数据库Create DATABASE database-name--2、说明:删除数据库drop database dbname--3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice'disk','testBack','c:\mssql7backup\MyNwind_1.dat'---- 开始备份BACKUP DATABASE pubs TO testBack--4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)--根据已有的表创建新表:--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--注:索引是不可更改的,想更改必须删除重新建。
mssql中常用的字符串函数大集合1.绝对值SQL: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.2346 6.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; 1 8.取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:selectTranslate('fasdbfasegas','fa','我' ) value from dual 27.长度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 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 ServerAverage AVG AVGCount COUNT COUNTMaximum MAX MAXMinimum MIN MINStandard deviation STDDEV STDEV or STDEVPSummation SUM SUMVariance VARIANCE VAR or VARPOracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:EXTRACT(YEAR FROM 日期)。
SQL函数使用大全及示例使用方法汇总1.数值函数:-ABS(x):返回x的绝对值。
示例:SELECTABS(-5);--返回结果为5-CEIL(x):返回大于或等于x的最小整数。
示例:SELECTCEIL(4.3);--返回结果为5-FLOOR(x):返回小于或等于x的最大整数。
示例:SELECTFLOOR(4.9);--返回结果为4-ROUND(x,d):返回x的四舍五入值,可指定小数位数d。
示例:SELECTROUND(4.567,2);--返回结果为4.57-MOD(x,y):返回x除以y的余数。
示例:SELECTMOD(10,3);--返回结果为12.字符串函数:- CONCAT(str1, str2):将str1和str2连接起来。
示例:SELECT CONCAT('Hello', 'World'); -- 返回结果为HelloWorld- UPPER(str):将str中的字符转换为大写。
示例:SELECT UPPER('abcd'); -- 返回结果为ABCD- LOWER(str):将str中的字符转换为小写。
示例:SELECT LOWER('ABCD'); -- 返回结果为abcd- LENGTH(str):返回str的字符数。
示例:SELECT LENGTH('HelloWorld'); -- 返回结果为11- SUBSTRING(str, start, length):返回str从start位置开始的length个字符。
示例:SELECT SUBSTRING('HelloWorld', 6, 5); -- 返回结果为World3.日期和时间函数:-NOW(:返回当前日期和时间。
示例:SELECTNOW(;--返回结果为当前日期和时间- DATE_FORMAT(date, format):将date按指定格式(format)进行格式化。
SQL函数大全汇总1.字符串函数:- CONCAT(str1, str2, ...):将多个字符串合并为一个字符串。
- LENGTH(str):计算字符串的长度。
- UPPER(str):将字符串转换为大写。
- LOWER(str):将字符串转换为小写。
- TRIM([characters FROM] str):去除字符串两端的指定字符。
- SUBSTRING_INDEX(str, delimiter, count):根据指定的分隔符,返回字符串的指定部分。
- REPLACE(str, search, replace):将字符串中的指定内容替换为新的内容。
- LEFT(str, length):返回字符串的左侧指定长度的部分。
- RIGHT(str, length):返回字符串的右侧指定长度的部分。
2.数值函数:- ABS(num):返回num的绝对值。
- CEILING(num):返回大于或等于num的最小整数。
- FLOOR(num):返回小于或等于num的最大整数。
- ROUND(num, precision):将num四舍五入到指定的精度。
-RAND(:返回一个0到1之间的随机数。
- MOD(num1, num2):返回num1除以num2的余数。
- POWER(num1, num2):返回num1的num2次幂。
3.日期和时间函数:-CURDATE(:返回当前日期。
-CURTIME(:返回当前时间。
-NOW(:返回当前日期和时间。
- DATE_FORMAT(date, format):将日期根据指定的格式进行格式化。
- YEAR(date):返回日期的年份部分。
- MONTH(date):返回日期的月份部分。
- DAY(date):返回日期的日部分。
4.聚合函数:- AVG(column):返回指定列的平均值。
- SUM(column):返回指定列的总和。
- COUNT(column):返回指定列的行数。
--聚合函数use pubsgoselect avg(distinct price)--算平均数from titleswhere type='business'gouse pubsgoselect max(ytd_sales)--最大数from titlesgouse pubsgoselect min(ytd_sales)--最小数from titlesgouse pubsgoselect type,sum(price),sum(advance)--求和from titlesgroup by typeorder by typegouse pubsgoselect count(distinct city)--求个数from authorsgouse pubsgoselect stdev(royalty)--返回给定表达式中所有值的统计标准偏差from titlesgouse pubsgoselect stdevp(royalty)--返回表达式中所有制的填充统计标准偏差from titlesgouse pubsgoselect var(royalty)--返回所有值的统计方差from titlesgouse pubsgoselect varp(royalty)--返回所有值的填充的统计方差from titlesgo--数学函数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 pubsselect au_lname,substring(au_fname,1,1)--取子串from authorsorder by au_lnameselect 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)--系统函数select host_name()as'host_name',host_id()as'host_id',user_name()as'user_name',user_id()as 'user_id',db_name()as'db_name'--变量的定义使用--声明局部变量declare @mycounter intdeclare @last_name varchar(30),@fname varchar(20),@state varchar(2)--一下声明多个变量--给变量赋值use northwindgodeclare @firstnamevariable varchar(20),@regionvariable varchar(30)set@firstnamevariable='anne'--可以用set,也可以用select给变量赋值,微软推荐用set,但select在选择一个值直接赋值时很有用set @regionvariable ='wa'select lastname,firstname,title --用声明并赋值过的变量构建一个Select语句并查询from employeeswhere firstname= @firstnamevariable or region=@regionvariablego--全局变量select @@version --返回数据库版本select @@error --返回最后的一次脚本错误select @@identity--返回最后的一个自动增长列的id--while,break,continue的使用--首先计算所有数的平均价格,如果低于30的话进入循环让所有的price翻倍,--里面又有个if来判断如果最大的单价还大于50的话,退出循环,否则继续循环,知道最大单价大于50就break出循环,呵呵,--我分析的应该对吧.use pubsgowhile (select avg(price)from titles)<$30beginupdate titlesset price=price*2select max(price)from titlesif(select max(price)from titles)>$50breakelsecontinueendprint 'too much for the marker to bear'--事务编程经典例子--begin transaction是开始事务,commit transaction是提交事务,rollback transaction是回滚事务--这个例子是先插入一条记录,如果出现错误的话就回滚事务,也就是取消,并直接return(返回),如果没错的话就commit 提交这个事务了哦--上面的那个return返回可以返回一个整数值,如果这个值是0的话就是执行的时候没出错,如果出错了就是一个负数, --这个return也可以用在存储过程中,可用用 exec @return_status= pro_name来获取这个值use pubsgobegin tran mytraninsert into stores(stor_id,stor_name)values('333','my books')goinsert into discounts(discounttype,stor_id,discount)values('清仓甩卖','9999',50.00)if @@error<>0beginrollback tran mytranprint '插入打折记录出错'returnendcommit tran mytran--事务处理的保存点示例--做了事务保存点后可以rollback(回滚)到指定的保存点,不至于所有的操作都不能用use pubsgoselect*from storesbegin transaction testsavetraninsert into stores(stor_id,stor_name)values('1234','W.Z.D Book')save transaction before_insert_data2goinsert into stores(stor_id,stor_name)values('5678','foreat Books')gorollback transaction before_insert_data2select*from stores--存储存储过程use pubsif exists(select name from sysobjects where name='proc_calculate_taxes'and type='P') drop procedure proc_calculate_taxesgocreate procedure proc_calculate_taxes (@p1 smallint=42,@p2 char(1),@p3 varchar(8)='char') asselect*from titles--执行过程EXECUTE PROC_CALCULATE_TAXES @P2='A'。