7. 内置函数
7.1. 标量函数
? 系统函数
1、 Case
常用CASE用法
SELECT Title,'Price Range' =
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
FROM titles ORDER BY price
CASE语句在GROUP BY使用
SELECT 'Number of Titles', Count(*)
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END
CASE语句在ORDER BY 使用
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END AS Range, Title
FROM titles
GROUP BY
CASE WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END, Title
ORDER BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END, Title
注:为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
2、 判断数据类型函数
ISDATE(expression) -- 是否是合法日期函数
ISNUMERIC(expression) -- 是否是合法数字
DATALENGTH(expression) -- 返回字段的字节数
3、 处理空值函数
NULLIF(expression,expression)
如果函数的两个表达式相等,返回空值,如果不等返回第一个表达式的值,通常在统计平均值时非常有用。
ISNULL(check_expression,replacement_value) --当列值为空时,用其他数字代替
SELECT ISNULL(STATE_ID,0) FROM SETTLE_ENTER_RECORD
COALESCE(expression)
4、 转换函数
CONVERT(data_type,expression,[style])
SELECT CONVERT(varchar,ENTER_TIME) as dateTime FROM SETTLE_ENTER_RECORD
CAST(express AS data_type)
SELECT CAST(ENTER_TIME AS datetime) as dateTime FROM SETTLE_ENTER_RECORD
注:CONVERT()和CAST()区别在于CONVERT()函数允许指定返回结果的格式。
在不使用格式化功能时推荐使用CAST()函数,因为他是SQL92标准函数
? 日期/时间函数
1、 获取系统时间
GETDATE() -- 返回系统时间
2、 获取部分日期/时间
DAY(date) --日期
MONTH(date) -- 月份
YEAR(date) --年
DATEPART(datepart,date) --获取部分时期
select DATEPART(yyyy,enter_time) from SETTLE_ENTER_RECORD
3、 日期/时间计算
DATEADD(datepart,number,date) -- 给指定日期添加一个间隔时间数
SELECT DATEADD(mm,10,enter_time) FROM SETTLE_ENTER_RECORD
DATEDIFF(datepart,startdate,enddate) --起始到终止日期的间隔时间
SELECT DATEDIFF(dd,enter_time,getDATE()) FROM SETTLE_ENTER_RECORD
? 字符串函数
1、 字符串长度
LEN(expression) -- 字符串长度
SELECT LEN(car_type_id) FROM SETTLE_ENTER_RECORD
2、 取子串
SUBSTRING(expression,start,length) --截取字符串
SELECT SUBSTRING(car_type_id,2,5) FROM SETTLE_ENTER_RECORD
3、 字符串位置
CHARINDEX(expression1,expression2) -- expression1在expression2的位置
SELECT CHARINDEX('2',car_type_id) FROM SETTLE_ENTER_RECORD
4、 删除空格
LTRIM(expression) --删除左边的空格
RTRIM(expression) --删除右边的空格
5、 大小写转换
UPPER(expression) --大写转换
LOWER(expression) --小写转换
6、 数值类型转换
STR(expression[,length]) -- 将数字类型转换为字符串类型
SELECT STR(car_type_id,5) FROM SETTLE_ENTER_RECORD
7、 字符类型同ASCII/UNICODE转换
CHAR(expression)
ASCII(expression)
NCHAR(expression)
UNICODE(expression)
7.2. 聚合函数
MAX(expression) --最大值
MIN(expression) --最小值
AVG(expression) --平均值
SUM(expression) --总计
分享到:
相关推荐
以下是PL/SQL与T-SQL常用数学、字符串及NULL处理函数的对比: 1. **数学函数**: - **绝对值**:在PL/SQL中使用`ABS()`函数,如`select abs(-1) value`;T-SQL同样使用`ABS()`函数,如`select abs(-1) value from ...
- TSQL: `ABS()` 函数用于获取一个数的绝对值,如 `SELECT ABS(-1) value`。 - PLSQL: 使用相同的 `ABS()` 函数,但在Oracle中,需要从 `DUAL` 表获取结果,如 `SELECT ABS(-1) value FROM DUAL`。 2. **取整**:...
"TSQL编程3-函数.doc"可能详细讲解了TSQL中的内置函数,如数学函数、字符串函数、日期时间函数等。例如,`LEN()`用于返回字符串长度,`DATEADD()`用于添加或减去日期时间间隔。 4. **TSQL过程** "TSQL编程2-过程....
**TSQL参考实用教程概述** TSQL,全称为Transact-SQL,是SQL语言的一个扩展,主要用于Microsoft SQL Server数据库管理系统中。它集成了标准的SQL语法,并添加了一系列用于数据库管理和编程的特有功能。本教程旨在...
5. **用户定义函数(UDFs)**:“Chapter 06 - User Defined Functions.sql”涵盖了UDFs的创建和使用,分为标量函数和表值函数,它们可复用性强,简化复杂的计算逻辑。 6. **动态执行(Dynamic Execution)**:...
- TRIM函数在TSQL中是LTRIM和RTRIM的组合,PL/SQL中直接为TRIM。 - 子字符串提取:TSQL有SUBSTRING,PL/SQL有SUBSTR和SUBSTRB(用于处理Unicode字符)。 - 日期处理:TSQL的系统日期是GETDATE(),PL/SQL是SYSDATE...
- SQL Server内置函数和常量如 @@IDENTITY、@@ERROR、@@ROWCOUNT 等,用于获取系统信息或处理错误。 2. SQL Server的系统信息函数: - @@DBTS 表示当前数据库的事务戳。 - @@SERVERNAME 返回SQL Server实例的...
文档的其余部分可能还包含有关这些函数更多细节和示例,但根据提供的内容来看,涵盖了T-SQL中常用函数的基本知识。这些函数对于进行数据操作和数据处理是十分关键的,是数据库开发者和数据库管理人员必须掌握的基础...
TSQL,全称为Transact-SQL,是SQL的一个扩展,主要应用于Microsoft的SQL Server数据库管理系统中。它是数据库管理和开发的基础,特别适合于数据库初学者以及需要进行数据库开发但对此领域不甚熟悉的人学习。 在TSQL...
TSQL2012数据库脚本下载
在SQL的世界里,TSQL(Transact-SQL)是Microsoft SQL Server所使用的扩展SQL语言,它包含了许多高级特性,其中之一便是分组集(Grouping Sets)。分组集允许我们在一个查询中实现多维度的分组,这对于数据分析和...
**SELECT * FROM**语句是最常用的SQL查询语句之一,它返回指定表中的所有列和所有行。 通过上述介绍,我们可以了解到SQL的基本概念、功能及其在实际应用中的重要性。掌握这些基础知识对于初学者来说是非常重要的,...
系统存储过程和其他语言元素:如注释、变量、运算符、函数和流程控制语句。\n\nT-SQL的特点包括:\n\n1. 功能强大:集成了DDL、DML和DCL,能够完成复杂的数据库操作。\n2. 简洁统一:SQL的语法接近英语,易于理解和...
《SQL SERVER 2008技术内幕:T-SQL语言基础》随书出来的源码。在学习这本书时,一定要在SQLSERVER2008上面创建这个数据库,供实验,一定要多做实验,才能有效掌握SQL语句的编写。
文档中提到了SQL Server的一些内置函数,如IDENTITY用于获取当前表中的标识列的值,ERROR用于返回错误信息,ROWCOUNT用于返回上一语句影响的行数等。这些函数对于操作数据库和进行错误处理非常有用。 3. 控制流语句...
10. **UserDefinedFunctions**:用户定义的函数是自定义的TSQL或CLR函数,提供比内置函数更复杂或特定的计算逻辑。 11. **System**:可能包含对系统级别的配置或调整,如系统数据库的维护、性能优化设置等。 12. *...
在TSQL中,游标允许程序逻辑逐条遍历和操作查询结果,而不是一次性处理所有数据。这在需要循环遍历数据或根据当前行数据做出决策时非常有用。 创建游标的基本步骤: 1. 定义游标:`DECLARE 游标名 CURSOR FOR 查询...