字符串函数

SQL Server .NET Framework 数据提供程序 (SqlClient) 提供了各种 String 函数,这些函数针对输入 String 执行操作并返回 String 或数值结果。 这些函数位于 SqlServer 命名空间中,该命名空间在您使用 SqlClient 时可用。 提供程序的命名空间属性使实体框架可以确定此提供程序对特定构造(如类型和函数)使用哪个前缀。

下表显示 SqlClient String 函数。

函数 说明
ASCII(expression) 返回字符串表达式中最左侧字符的 ASCII 代码值。

参数

expression:ASCII String 类型的任何有效表达式。

返回值

Int32

示例

SqlServer.ASCII('A')
CHAR(expression) Int32 代码转换为 ASCII 字符串。

参数

expressionInt32

返回值

ASCII String

示例

SqlServer.char(97)
CHARINDEX(expression1, expression2 [, start_location]) 返回字符串中指定表达式的起始位置。

参数

expression1:包含要查找的字符序列的表达式。 表达式可以为 String(ASCII 或 Unicode)类型或 Binary 类型。

expression2:用于搜索指定序列的表达式(通常是列)。 表达式可以为 String(ASCII 或 Unicode)类型或 Binary 类型。

start_location:(可选)Int64(在 SQL Server 2000 中不返回)或 Int32,表示在 expression2 中开始搜索 expression1 的字符位置。 如果未指定 start_location、或者指定值为负数或零,那么搜索将会开始于 expression2 的起始位置。

返回值

Int32

示例

SqlServer.CHARINDEX('h', 'habcdefgh', 2)
DIFFERENCE(expression, expression) 比较两个字符串的 SOUNDEX 值,并评估它们之间的相似性。

参数

ASCII 或 Unicode String 类型。 expression 可以是常量、变量或列。

返回值

返回 Int32,表示两个字符表达式的 SOUNDEX 值之间的差异。 范围为从 0 到 4。 0 表示几乎不同或完全不同,4 表示几乎相同或完全相同。

示例

// The following example returns a DIFFERENCE value of 4,

//the least possible difference or the best match.

SqlServer.DIFFERENCE('Green','Greene');
LEFT(expression, count) 返回字符串中从左边开始指定个数的字符。

参数

expression:Unicode 或 ASCII String 类型。 使用 CAST 函数可以显式转换 character_expression。

countInt64(在 SQL Server 2000 中不返回)或 Int32 类型,指定将返回 character_expression 中的多少个字符。

返回值

Unicode 或 ASCII String

示例

SqlServer.LEFT('SQL Server', 4)
LEN(expression) 返回指定 String 表达式中的字符数,其中不包含尾随空格。

参数

expressionString(Unicode 或 ASCII)类型或 Binary 类型的表达式

返回值

Int32

示例

SqlServer.LEN('abcd')
LOWER(expression) 将大写字符数据转换成小写后返回 String 表达式。

参数

expressionString 类型的任何有效表达式。

返回值

一个 String

示例

SqlServer.LOWER('AbB')
LTRIM(expression) 返回删除了前导空格的 String 表达式。

参数

expressionString 类型的任何有效表达式。

返回值

一个 String

示例

SqlServer.LTRIM(' d')
NCHAR(expression) 根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode String

参数

expressionInt32

返回值

Unicode String

示例

SqlServer.NCHAR(65)
PATINDEX('%pattern%', expression) 返回某一模式在指定的 String 表达式中首次出现的开始位置。

参数

'%pattern%':ASCII 或 Unicode String 类型。 可以使用通配符;但是模式的前后必须使用字符 %(搜索最前面的或最后面的字符时除外)。

expression:用于搜索指定模式的 ASCII 或 Unicode String

返回值

Int32

示例

SqlServer.PATINDEX('abc', 'ab')
QUOTENAME('char_string' [, 'quote_char']) 返回带有分隔符的 Unicode String,分隔符的加入可使输入字符串成为有效的 SQL Server 2005 分隔标识符。

参数

char_string:Unicode String

quote_char:用作分隔符的单字符字符串。 可以是单引号 (')、左方括号或右方括号 ([ ]) 或者英文双引号 (")。 如果未指定 quote_char,则使用方括号。

返回值

Unicode String

示例

SqlServer.QUOTENAME('abc[]def')
REPLACE(expression1, expression2, expression3) 将一个字符表达式替换为另一个字符表达式。

参数

expression1:要在其中搜索的字符串表达式。 expression1 可以是 Unicode 或 ASCII String 类型。

expression2:要查找的 substring。 expression2 可以是 Unicode 或 ASCII String 类型。

expression3:替换字符串。 expression3 可以是 Unicode 或 ASCII String 类型。

示例

SqlServer.REPLACE('aabbcc', 'bc', 'zz')
REPLICATE(char_expression, int_expression) 按指定次数重复字符表达式。

参数

char_expression:Unicode 或 ASCII String 类型。

int_expressionInt64(在 SQL Server 2000 中不支持)或 Int32

返回值

Unicode 或 ASCII String 类型。

示例

SqlServer.REPLICATE('aa',2)
REVERSE(expression) 返回将输入字符串的字符顺序反转后的 Unicode 或 ASCII String。

参数

expression:Unicode 或 ASCII String 类型。

返回值

Unicode 或 ASCII String 类型。

示例

SqlServer.REVERSE('abcd')
RIGHT(char_expression, count) 返回字符串中从右边开始指定个数的字符。

参数

char_expression:Unicode 或 ASCII String 类型。 使用 CAST 函数可以显式转换 character_expression。

countInt64(在 SQL Server 2000 中不返回)或 Int32 类型,指定将返回 character_expression 中的多少个字符。

返回值

ASCII String 类型。

示例

SqlServer.RIGHT('SQL Server', 6)
RTRIM(expression) 返回删除了尾随空格的 Unicode 或 ASCII String。

参数

expression:Unicode 或 ASCII String 类型。

返回值

Unicode 或 ASCII String 类型。

示例

SqlServer.RTRIM(' d e ')
SOUNDEX(expression) 返回一个由四个字符组成的代码 (SOUNDEX) 以评估两个字符串的相似性。参数

expression:Unicode 或 ASCII String 类型。

返回值

ASCII String。 一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性。

示例

Select SqlServer.SOUNDEX('Smith'), SqlServer.SOUNDEX('Smythe') FROM {1}

返回

----- ----- S530 S530
SPACE(int_expression) 返回由重复的空格组成的 ASCII String

参数

int_expression:指示空格数的 Int64(在 SQL Server 2000 中不返回)或 Int32

返回值

ASCII String

示例

SqlServer.SPACE(2)
STR(float_expression [, length [, decimal]]) 返回从数值数据转换而成的 ASCII String

参数

float _expression:带小数点的近似数值 (Double) 数据类型的表达式。

length:(可选)表示总长度的 Int32。 它包括小数点、符号、数字以及空格。 默认值为 10。

decimal:(可选)一个 Int32,表示小数点右侧位数。 小数必须小于或等于 16 位。 如果小数超过 16 位,则会将结果截断至小数点右侧 16 位。

返回值

ASCII String

示例

SqlServer.STR(212.0)
STUFF(str_expression, start, length, str_expression_to_insert) 在字符串表达式中,在指定的起始点删除指定长度的字符并插入另一组字符。

参数

str_expression:Unicode 或 ASCII String

start: 一个 Int64(在 SQL Server 2000 中不返回)或 Int32 值,指定开始删除和插入的位置。

lengthInt64(在 SQL Server 2000 中不返回)或 Int32 值,指定要删除的字符数。

str_expression_to_insert:Unicode 或 ASCII String

返回值

Unicode 或 ASCII String

示例

SqlServer.STUFF('abcd', 2, 2, 'zz')
SUBSTRING(str_expression, start, length) 返回 String 表达式的一部分。

参数

str_expressionString(ASCII 或 Unicode)类型或 Binary 类型的表达式。

startInt64(在 SQL Server 2000 中不返回)或 Int32,指定子字符串的开始位置。 1 指此字符串中的第一个字符。

lengthInt64(在 SQL Server 2000 中不返回)或 Int32,指定将返回表达式中的多少个字符。

返回值

String(ASCII 或 Unicode)类型或 Binary 类型。

示例

SqlServer.SUBSTRING('abcd', 2, 2)
UNICODE(expression) 按照 Unicode 标准的定义,返回输入表达式的第一个字符的整数值。

参数

expression:Unicode String

返回值

Int32

示例

SqlServer.UNICODE('a')
UPPER(expression) 将小写字符数据转换成大写后返回 String 表达式。

参数

expression:ASCII 或 Unicode String 类型的表达式。

返回值

ASCII 或 Unicode String 类型。

示例

SqlServer.UPPER('AbB')

有关 SqlClient 支持的 String 函数的详细信息,请参阅字符串函数 (Transact-SQL)

请参阅