T-SQL

T-SQL 知识量:16 - 67 - 243

9.1 系统函数><

字符串函数- 9.1.1 -

T-SQL(Transact-SQL)提供了一系列字符串函数,用于处理和操作文本数据。以下是一些常用的T-SQL字符串函数:

1. CONCAT:将两个或多个字符串连接在一起。

SELECT CONCAT('Hello', ' ', 'World'); -- 输出:Hello World

2. LEN:返回字符串的长度(字符数)。

SELECT LEN('Hello World'); -- 输出:11

3. LTRIM:删除字符串左侧的空格。

SELECT LTRIM('   Hello World'); -- 输出:'Hello World'

4. RTRIM:删除字符串右侧的空格。

SELECT RTRIM('Hello World   '); -- 输出:'Hello World'

5. SUBSTRING:从字符串中提取子字符串。需要指定起始位置和长度。

SELECT SUBSTRING('Hello World', 7, 5); -- 输出:'World'

6. CHARINDEX:返回子字符串在字符串中首次出现的位置。如果未找到子字符串,则返回0。

SELECT CHARINDEX('World', 'Hello World'); -- 输出:7

7. REPLACE:在字符串中替换指定的子字符串。

SELECT REPLACE('Hello World', 'World', 'T-SQL'); -- 输出:'Hello T-SQL'

8. UPPER:将字符串转换为大写。

SELECT UPPER('Hello World'); -- 输出:'HELLO WORLD'

9. LOWER:将字符串转换为小写。

SELECT LOWER('Hello World'); -- 输出:'hello world'

10. REVERSE:反转字符串的顺序。

SELECT REVERSE('Hello World'); -- 输出:'dlroW olleH'

这些函数只是T-SQL中可用的字符串函数的一部分,还有其他更多的函数可用于处理文本数据。

数学函数- 9.1.2 -

T-SQL提供了多种数学函数,用于进行数学计算和数值处理。以下是一些常用的T-SQL数学函数:

1. ROUND:将数字舍入到指定的小数位数。

SELECT ROUND(123.4567, 2); -- 结果为 123.46

2. CEILING:返回大于或等于给定数字的最小整数。

SELECT CEILING(123.4567); -- 结果为 124

3. FLOOR:返回小于或等于给定数字的最大整数。

SELECT FLOOR(123.4567); -- 结果为 123

4. ABS:返回数字的绝对值。

SELECT ABS(-123); -- 结果为 123

5. RAND:返回一个随机数。如果需要种子值,可以使用RAND(seed)。

SELECT RAND(); -- 返回一个随机数

6. ROUND:将数字舍入到指定的小数位数。

SELECT ROUND(123.4567, 2); -- 结果为 123.46

7. CONVERT:将数字从一种数据类型转换为另一种数据类型。

SELECT CONVERT(DECIMAL(10, 2), '123456789.98'); -- 将字符串转换为DECIMAL类型,结果为 123456789.98

8. CEILING:返回大于或等于给定数字的最小整数。

SELECT CEILING(123.4567); -- 结果为 124

9. FLOOR:返回小于或等于给定数字的最大整数。

SELECT FLOOR(123.4567); -- 结果为 123

日期和时间函数- 9.1.3 -

T-SQL提供了多种日期和时间函数,用于处理和操作日期和时间数据。以下是一些常用的T-SQL日期和时间函数:

1. GETDATE():返回当前日期和时间。

SELECT GETDATE();

2. CONVERT():将日期和时间数据从一种格式转换为另一种格式。

SELECT CONVERT(DATE, '2023-07-19 12:34:56'); -- 将字符串转换为日期格式

3. DATEADD():在日期上添加或减去指定的时间间隔。

SELECT DATEADD(DAY, 7, '2023-07-19'); -- 在日期上加7天

4. DATEDIFF():返回两个日期之间的时间间隔。

SELECT DATEDIFF(DAY, '2023-07-19', '2023-07-26'); -- 返回两个日期之间的天数差异

5. DAY():返回日期的天数部分。

SELECT DAY('2023-07-19'); -- 返回19

6. MONTH():返回日期的月份部分。

SELECT MONTH('2023-07-19'); -- 返回7

7. YEAR():返回日期的年份部分。

SELECT YEAR('2023-07-19'); -- 返回2023

8. DATEPART():返回日期或时间部分的数值表示。

SELECT DATEPART(DAY, '2023-07-19'); -- 返回19

9. DATETIMEFROMPARTS():根据指定的年、月、日、小时、分钟和秒创建一个DATETIME值。

SELECT DATETIMEFROMPARTS(2023, 7, 19, 12, 34, 56); -- 返回'2023-07-19 12:34:56'的DATETIME值

系统信息函数- 9.1.4 -

T-SQL提供了一些系统信息函数,用于获取数据库的内部信息。以下是一些常用的T-SQL系统信息函数:

1. @@VERSION:返回SQL Server的版本信息。

SELECT @@VERSION;

2. @@SERVERNAME:返回当前服务器的名称。

SELECT @@SERVERNAME;

3. @@NAME:返回当前数据库的名称。

SELECT @@NAME;

4. @@IDENTITY:返回当前会话的最后一个插入的标识列的值。

SELECT @@IDENTITY;

5. @@ROWCOUNT:返回上一条SQL语句影响的行数。

SELECT @@ROWCOUNT;

6. @@FETCH_STATUS:返回上次FETCH语句的状态。

SELECT @@FETCH_STATUS;

7. @@CURRENTDATETIME:返回当前日期和时间,包括时间部分的精确值。

SELECT @@CURRENTDATETIME;

8. @@TRANCOUNT:返回当前会话中活动的用户事务的数量。

SELECT @@TRANCOUNT;

9. @@DBTS:返回当前数据库的时间戳。

SELECT @@DBTS;

10. @@SPID:返回当前会话的服务器进程ID。

SELECT @@SPID;

这些函数可以获取SQL Server数据库的内部信息,了解当前会话的状态和属性。

数据类型转换函数- 9.1.5 -

T-SQL提供了多种数据类型转换函数,用于将数据从一种数据类型转换为另一种数据类型。以下是一些常用的T-SQL数据类型转换函数:

1. CAST():将一个数据类型转换为另一个数据类型。

SELECT CAST(column_name AS data_type);

2. CONVERT():将一个数据类型转换为另一个数据类型。

SELECT CONVERT(data_type, column_name);

3. ISDATE():检查给定表达式是否为有效的日期。

SELECT ISDATE(column_name);

4. ISNULL():将NULL值替换为指定的值。

SELECT ISNULL(column_name, 'replacement_value');

5. NULLIF():如果两个表达式的值相等,则返回NULL,否则返回第一个表达式的值。

SELECT NULLIF(column_name, 'value');

6. COALESCE():返回第一个非NULL值。

SELECT COALESCE(column_name1, column_name2, ...);

7. CASE:根据条件进行数据类型转换。

SELECT   
  CASE   
    WHEN column_name = 'value' THEN 'result'   
    ELSE 'default_value'   
  END;