ASCII
-- character_expression : char 或 varchar 类型的表达式。
ASCII ( character_expression )
- character_expression : char 或 varchar 类型的表达式。
- 返回值 : int
CHAR
CHAR ( integer_expression )
- integer_expression : 0 到 255 之间的整数。 对于此输入范围外的整数表达式或不表示完整字符的整数表达式,CHAR 返回 NULL 值。 字符超出了返回类型的长度时,CHAR 也会返回 NULL 值。
- 注解 : 使用 CHAR 可将控制字符插入字符字符串中。 此表显示了一些常用的控制字符。
控制字符 | 值 |
---|---|
选项卡 | char(9) |
换行 | char(10) |
回车 | char(13) |
空格 | char(32) |
CHARINDEX
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
- expressionToFind : 一个字符表达式,其中包含要查找的序列。 expressionToFind 限制为 8000 个字符 。
- expressionToSearch : 要搜索的字符表达式。
- start_location : 表示搜索开始位置的 integer 或 bigint 表达式 。 如果 start_location 未指定、具有负数值或 0,搜索将从 expressionToSearch 的开头开始 。
- 返回类型 : 如果 expressionToSearch 具有一个 nvarchar(max)、varbinary(max) 或 varchar(max) 数据类型,则为 bigint;否则为 int 。
CONCAT
CONCAT ( string_value1, string_value2 [, string_valueN ] )
- string_value : 要与其他值串联的字符串值。 CONCAT 函数需要至少两个 string_value 自变量,并且不得超过 254 个 string_value 自变量。
返回类型 : 长度和类型取决于输入的字符串值。
CONCAT_WS
CONCAT_WS ( separator, argument1, argument2 [, argumentN]... )
- 分隔符:任何字符类型的表达式(char、ncharnvarchar 或 varchar)。
- argument1、argument2、argumentN:任何类型的表达式。 CONCAT_WS 函数需要至少两个自变量,并且不得超过 254 个自变量。
DIFFERENCE
DIFFERENCE 比较两个不同的 SOUNDEX 值,并返回一个整数值。 该值用于度量 SOUNDEX 值匹配的程度,范围为 0 到 4。 值为 0 表示 SOUNDEX 值之间的相似性较弱或不相似;4 表示与 SOUNDEX 值非常相似,甚至完全相同。
DIFFERENCE 和 SOUNDEX 具有排序规则敏感度。
DIFFERENCE ( character_expression , character_expression )
- character_expression : 字符数据的字母数字表达式。 character_expression 可以是常量、变量或列。
- 返回类型 : int
FORMAT
FORMAT( value, format [, culture ] )
- value : 支持格式化的数据类型的表达式。
- format : format 参数必须包含一个有效的 .NET Framework 格式字符串,要么作为标准格式字符串(例如,“C”或“D”),要么作为日期值和数值的自定义字符模式(例如,“MMMM DD, yyyy (dddd)”) 。 不支持组合格式。
- 返回类型 : nvarchar 或 Null
示例一 :
--简单 FORMAT 示例
DECLARE @d DATE = '11/22/2020';
SELECT FORMAT( @d, 'd', 'en-US' ) 'US English'
,FORMAT( @d, 'd', 'en-gb' ) 'Great Britain English'
,FORMAT( @d, 'd', 'de-de' ) 'German'
,FORMAT( @d, 'd', 'zh-cn' ) 'Simplified Chinese (PRC)';
SELECT FORMAT( @d, 'D', 'en-US' ) 'US English'
,FORMAT( @d, 'D', 'en-gb' ) 'Great Britain English'
,FORMAT( @d, 'D', 'de-de' ) 'German'
,FORMAT( @d, 'D', 'zh-cn' ) 'Chinese (Simplified PRC)';
--结果如下
US English Great Britain English German Simplified Chinese (PRC)
---------- --------------------- ---------- ------------------------
11/22/2020 22/11/2020 22.11.2020 2020/11/22
US English Great Britain English German Chinese (Simplified PRC)
--------------------------- ---------------------- -------------------------- ---------------------------------------
Sunday, November 22, 2020 22 November 2020 Sonntag, 22. November 2020 2020年11月22日
示例二 : 使用自定义格式字符串执行 FORMAT
DECLARE @d DATE = GETDATE();
SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'Date' ,
FORMAT(123456789,'###-##-####') AS 'Custom Number';
----结果如下
Date Custom Number
---------- -------------
22/11/2020 123-45-6789
示例三 : 用于数值类型的 FORMAT
SELECT TOP(5) CurrencyRateID, EndOfDayRate
,FORMAT(EndOfDayRate, 'N', 'en-us') AS 'Number Format'
,FORMAT(EndOfDayRate, 'G', 'en-us') AS 'General Format'
,FORMAT(EndOfDayRate, 'C', 'en-us') AS 'Currency Format'
FROM Sales.CurrencyRate
ORDER BY CurrencyRateID;
示例四 : 时间数据类型
SELECT FORMAT(cast('07:35' as time), N'hh\.mm'); --> returns 07.35
SELECT FORMAT(cast('07:35' as time), N'hh\:mm'); --> returns 07:35
SELECT FORMAT(SYSDATETIME(), N'hh:mm tt'); -- returns 03:46 PM
SELECT FORMAT(SYSDATETIME(), N'hh:mm t'); -- returns 03:46 P
select FORMAT(CAST('2018-01-01 01:00' AS datetime2), N'hh:mm tt') -- returns 01:00 AM
select FORMAT(CAST('2018-01-01 01:00' AS datetime2), N'hh:mm t') -- returns 01:00 A
select FORMAT(CAST('2018-01-01 14:00' AS datetime2), N'HH:mm') -- returns 14:00
LEN
-- 返回指定字符串表达式的字符数,其中不包含尾随空格
select LEN("1234"); -- 4
LEFT
SELECT LEFT('abcdefg',2);
LOWER、UPPER
SELECT LOWER('ABC'); -- abc
SELECT UPPER('abc'); -- ABC
LTRIM、RTRIM
LTRIM ( character_expression , [ characters ] )
RTRIM ( character_expression , [ characters ] )
- character_expression : 字符或二进制数据的表达式
- characters : SQL Server 2022 (16.x) 预览版及更高版本
REPLACE
-- 语法
REPLACE( string_expression , string_pattern , string_replacement )
-- 示例
SELECT REPLACE('123123','3','7'); -- 127127
REPLICATE
-- 语法
REPLICATE ( string_expression , integer_expression )
-- 示例
SELECT REPLICATE()
REVERSE
select REVERSE('123'); -- 321
RIGHT
SELECT RIGHT('1234',2); -- 34
STR
select str('12',3); -- len(str('12',3)) = 3
SUTFF
-- 语法
STUFF ( character_expression , start , length , replaceWith_expression )
-- 示例
SELECT STUFF('abcdef', 6, 0, 'ijklmn'); -- abcdeijklmnf
SELECT STUFF('abcdef', 1, 0, 'ijklmn'); -- abcdeijklmnf
SELECT STUFF('abcdef', 2, 3, 'ijklmn'); -- aijklmnef
- character_expression : 第一个字符串
- start : 第一个字符串位置(SQL中第一个索引为1)
- length : 删除的字符个数
- 第二个字符串,将插入在start之前
SUBSTRING
UNICODE
select UNICODE('A'); -- 65
评论 (0)