SQL Server 2005的字符串函数

SQL Server 2005的字符串函数
简介:下面的一组技巧会演示SQL Server 2005的字符串函数。

字符串函数对T-SQL编程非常有用,能让我们进行字符串清除、ASCII和普通字符之间的转换、模式搜索、移除尾部空格等等。

关键词:
下面的一组技巧会演示SQL Server 2005的字符串函数。

字符串函数对T-SQL 编程非常有用,能让我们进行字符串清除、ASCII和普通字符之间的转换、模式搜索、移除尾部空格等等。

表8-3列出了SQL Server 2005中提供的各种字符串函数。

表8-3 字符串函数
函数名描述
ASCII和CHAR ASCII函数接受字符表达式最左边的字符并返回ASCII码。

CHAR函数把ASCII码的整数值转化为字符值
CHARINDEX和PATINDEX
CHARINDEX函数用于返回一个字符串在另外一个字符串中的起始位置。

PATINDEX函数和CHARINDEX相似,只是PATINDEX允许在指定要搜索的字符串的时候使用通配符
DIFFERENCE和SOUNDEX
DIFFERENCE和SOUNDEX都用于计算发音相似的字符串。

SOUNDEX为字符串分配一个4位数字码,DIFFERENCE计算两个独立字符串的SOUNDEX输出的相似级别
LEFT和RIGHT LEFT函数返回字符串从左起指定个字符数的一部分字符串。

RIGHT函数和LEFT函数相似,只是返回字符串从右起指
定个字符数的一部分字符串
LEN和DATALENGTH
LEN函数返回字符串表达式的字符个数,不包括最后一个字符后面的任何空格(尾部空格)。

而DATALENGTH返回表达式使用的字节数
LOWER和UPPER LOWER函数返回字符表达式的小写形式,UPPER函数返回字符表达式的大写形式
LTRIM和RTRIM LTRIM函数移除前导空格,RTRIM函数移除尾部空格
NCHAR和UNICODE
UNICODE函数返回字符表达式或输入表达式的第一个字符的Unicode整数值。

NCHAR函数接受一个表示Unicode字符的整数值并把它转化为等价的字符
QUOTENAME QUOTENAME函数为Unicode输入字符串增加分隔符使之成为一个有效的分隔标识符
REPLACE REPLACE函数替换某个字符串中的一个指定字符串的所有示例,并把它替换为新的字符串
REPLICATE REPLICATE函数将某个字符表达式重复指定次
REVERSE REVERSE函数接受一个字符表达式并且以逆序的字符位置
输出表达式
SPACE SPACE函数根据为输入参数指定的整数值返回重复空格的
字符串
STR STR函数把数字数据转化为字符数据
STUFF STUFF函数删除指定长度的字符并在指定的起始位置插入
指定字符串
SUBSTRING SUBSTRING函数返回某个表达式中定义的一块
接下来的几个技巧会演示如何使用这些字符串函数。

8.3.1 把字符值转化为ASCII以及把ASCII转回字符
ASCII函数接受字符表达式最左边的字符并返回ASCII码,而CHAR函数将代表ASCII的整数值转化为字符值。

再次强调,ASCII只使用字符串的第一个字符。

如果字符串是空或NULL,ASCII会返回NULL值(但空格值返回32)。

第一个示例演示如何把字符转化为整数的ASCII值:
这个查询返回:
接着,使用CHAR函数来把整数值再转化回字符:
这个查询返回:
解析
在这个技巧中,我们把“Hello”这个单词拆解成一个一个字符然后使用ASCII函数把它转化成数字的ASCII值。

在第二个T-SQL语句中,又使用CHAR 函数把ASCII值再转回字符。

8.3.2 返回整数和字符Unicode值
UNICODE函数返回字符或输入表达式的第一个字符的Unicode整数值。

NCHAR 函数接受一个表示Unicode字符的整数值然后把它转化为等价的字符。

如果你需要使用Unicode标准与外部处理程序交换数据,那么这些函数就很有用。

第一个示例把单个字符转化为表示Unicode标准字符代码的整数值:这个查询返回:。

合集下载

SqlServer时间日期处理函数及字符串转换

SqlServer时间日期处理函数及字符串转换
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数 参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
4. datepart DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五

sql server字符串函数

sql server字符串函数

sql server字符串函数SQL Server提供了许多字符串函数,这些函数可以用于处理和操作字符串。

下面是一些常用的SQL Server字符串函数:1. LEN() 函数:返回一个字符串的长度。

2. LEFT() 函数:返回一个字符串的左侧指定数量的字符。

3. RIGHT() 函数:返回一个字符串的右侧指定数量的字符。

4. SUBSTRING() 函数:返回一个字符串中从指定位置开始的指定长度的子串。

5. REPLACE() 函数:替换一个字符串中所有出现的指定子串为另一个子串。

6. UPPER() 函数:将一个字符串转换为大写。

7. LOWER() 函数:将一个字符串转换为小写。

8. LTRIM() 函数:去除一个字符串左侧的空格。

9. RTRIM() 函数:去除一个字符串右侧的空格。

10. CONCAT() 函数:将两个或多个字符串连接成一个新的字符串。

下面是这些函数在SQL Server中使用示例:-- LEN()函数示例SELECT LEN('Hello World') AS LengthOfHelloWorld;-- LEFT()函数示例SELECT LEFT('Hello World', 5) AS LeftFiveCharacters;-- RIGHT()函数示例SELECT RIGHT('Hello World', 5) AS RightFiveCharacters;-- SUBSTRING()函数示例SELECT SUBSTRING('Hello World', 7, 5) AS SubstringFromSevenToEleven;-- REPLACE()函数示例SELECT REPLACE('Hello World', 'World', 'SQL Server') AS ReplaceWorldWithSqlServer;-- UPPER()函数示例SELECT UPPER('Hello World') AS UpperCaseString;-- LOWER()函数示例SELECT LOWER('Hello World') AS LowerCaseString;-- LTRIM()函数示例SELECT LTRIM(' Hello World') AS TrimmedString;-- RTRIM()函数示例SELECT RTRIM('Hello World ') AS TrimmedString;-- CONCAT()函数示例SELECT CONCAT('Hello', ' ', 'World') AS ConcatenatedString;这些SQL Server字符串函数可以帮助您更轻松地处理和操作字符串。

SQLServer2005中使用CLR函数实现字符串排序

SQLServer2005中使用CLR函数实现字符串排序

SQL Server 2005中使用CLR函数实现字符串排序伴随着SQL Server 2005 ,微软发布了公共语言运行库(CLR),允许开发人员和DBA能够利用SQL Server之外的托管代码。

CLR为那些懂的.net开发语言,但是不懂的T-SQL语言的人,提供了一种实现方式。

使用CLR,可以直接在SQL Server中创建存储过程、触发器,用户自定义函数,集合体和类型等等。

在本文中,我们通过一个例子,来看看如何使用CLR函数,对输入的字符串进行分析、排序,最后得到排序后的字符串。

假设储存在数据库表中的数据如下所示:apple,pear,orange,banana,grape,kiwi我们希望的结果排序如下所示:apple,banana,grape,kiwi,orange,pear我们可以写SQL Server函数来实现这一功能:解析字符串,将结果储存在一个临时表中,然后按指定顺序检索结果,并将字符串重新结合在一起。

我们也可以编写一个简短的CLR函数,来实现同样的功能。

接下来让我们来看看CLR函数具体是如何实现这一功能的。

步骤1:启用CLR集成首先需要在SQL Server外围应用配置器中进行设置,确保SQL Server已经启用了CLR。

如图1所示:图1:SQL Server 2005外围应用配置器选择“功能的外围应用配置器”,显示如图2所示界面:确保“启用CLR集成”这一项打勾,然后点“确定”按钮。

步骤2:编写CLR代码首先,我们需要做的是编写CLR代码。

采用或者C#来写都可以,在这个例子中我们将使用 。

下面的范例代码中,创建了一个名为CLRFunctions的类,该类中包含了一个名为SortString的函数。

SortString函数对输入的一个字符串变量进行排序,并返回一个排序后的字符串。

第一步:使用内置的VB函数,把“,”作为分隔符分割输入的字符串,得到一个字符串数组;第二步:采用Array.Sort,对数组中的数据进行排序列。

SQLSERVER2005允许自定义聚合函数-表中字符串分组连接

SQLSERVER2005允许自定义聚合函数-表中字符串分组连接

SQLSERVER2005允许⾃定义聚合函数-表中字符串分组连接不多说了,说明后⾯是完整的代码,⽤来将字符串型的字段的各⾏的值拼成⼀个⼤字符串,也就是通常所说的Concat例如有如下表dictID NAME CATEGORY1RED COLOR2BLUE COLOR3APPLE FRUIT4ORANGE FRUIT执⾏SQL语句:select category,dbo.concatenate(name) as names from dict group by category.得到结果表如下category namesCOLOR REDBLUEFRUIT APPLEORANGE如果觉得需要⽤逗号或分号或其他任何你想要的分隔符分开,可以修改下⾯的代码来实现。

在VS2005中,创建⼀个连接到⽬标库的SQL SERVER PROJECT,然后填加⼀个“聚合”,将下⾯的代码复制进去,编译后,部署即可,然后在SQL SERVER中的“可编程性”“函数”“聚合函数”中就可以看到该函数了。

using System;using System.Data;using Microsoft.SqlServer.Server;using System.Data.SqlTypes;using System.IO;using System.Text;[Serializable][SqlUserDefinedAggregate(erDefined, //use clr serialization to serialize the intermediate resultIsInvariantToNulls = true, //optimizer propertyIsInvariantToDuplicates = false, //optimizer propertyIsInvariantToOrder = false, //optimizer propertyMaxByteSize = 8000) //maximum size in bytes of persisted value]public class Concatenate : IBinarySerialize{/// <summary>/// The variable that holds the intermediate result of the concatenation/// </summary>private StringBuilder intermediateResult;/// <summary>/// Initialize the internal data structures/// </summary>public void Init(){this.intermediateResult = new StringBuilder();}/// <summary>/// Accumulate the next value, not if the value is null/// </summary>/// <param name="value"></param>public void Accumulate(SqlString value){if (value.IsNull){return;}this.intermediateResult.Append(value.Value);}/// <summary>/// Merge the partially computed aggregate with this aggregate./// </summary>/// <param name="other"></param>public void Merge(Concatenate other){this.intermediateResult.Append(other.intermediateResult);}/// <summary>/// Called at the end of aggregation, to return the results of the aggregation./// </summary>/// <returns></returns>public SqlString Terminate(){string output = string.Empty;//delete the trailing comma, if anyif (this.intermediateResult != null&& this.intermediateResult.Length > 0){output = this.intermediateResult.ToString(0, this.intermediateResult.Length );}return new SqlString(output);}public void Read(BinaryReader r){intermediateResult = new StringBuilder(r.ReadString());}public void Write(BinaryWriter w){w.Write(this.intermediateResult.ToString());}}这⾥有⼏个⽐较重要的⽅法:Terminate,这个⽅法是最后调⽤的⽅法,它返回最后的值。

sqlserver拼接字符串函数

sqlserver拼接字符串函数

sqlserver拼接字符串函数SQLServer拼接字符串函数是SQLServer数据库中的一种便捷而强大的工具,它可以帮助用户快速拼接多个字符串,完成一些复杂的字符串操作,简化用户编写程序的工作量。

由于SQL Server拼接字符串函数的广泛应用,微软在SQL Server 2005及更高版本中,定义了三种拼接字符串函数,它们分别是CONCAT()、CONCAT_WS()和FORMAT()。

首先,CONCAT()函数是SQL Server最常用的拼接字符串函数,它可以接受最多255个参数,并将它们拼接成单个字符串,可以将字符串,数值,变量和列等数据拼接成单个字符串。

它的语法如下:SELECT CONCAT(str1str2str3.....);其次,CONCAT_WS()函数是SQL Server中拼接字符串的另一种常用方式,它除了和CONCAT()函数一样可以从参数中拼接字符串外,还可以将第一个参数指定的文本作为拼接字符串的分隔符,即第一个参数作为拼接字符串的分隔符。

它的语法如下:SELECT CONCAT_WS(分隔符str1str2str3.....);最后,FORMAT()函数是SQL Server中另一个强大的拼接字符串函数,它可以把多个参数按照不同格式拼接成一个字符串,如日期格式,金额格式等,而且参数可以是任意类型。

它的语法如下:SELECT FORMAT(参数1,格式,参数2,格式 ....);SQL Server拼接字符串函数可以帮助用户快速拼接字符串,简化程序编写的工作量。

在使用上,用户可以根据实际需求,选择不同的拼接字符串函数,以满足不同的功能需求。

如果只是简单的拼接字符串,建议使用CONCAT()函数;如果需要带有分隔符的拼接字符串,可以使用CONCAT_WS()函数;如果需要按照不同的格式拼接字符串,可以使用FORMAT()函数。

总之,SQL Server拼接字符串函数是一种强大而便捷的工具,它可以帮助用户快速拼接字符串,简化程序编写的工作量,它的函数有标准拼接(CONCAT()),有分隔符拼接(CONCAT_WS()),有格式拼接(FORMAT())。

sqlserver2005 concat函数 -回复

sqlserver2005 concat函数 -回复

sqlserver2005 concat函数-回复SQL Server 2005是微软发布的一款关系型数据库管理系统,具有强大的数据处理和查询功能,其中的concat函数在字符串处理方面非常重要。

这篇文章将逐步回答关于concat函数的问题,并从基本用法到高级应用深入探讨,帮助读者充分理解和应用该函数。

1. 什么是concat函数?concat函数是SQL Server 2005中提供的一个字符串处理函数,用于将多个字符串连接在一起形成一个新的字符串。

通过concat函数,我们可以方便地将多个字段或常量值组合成一个字符串。

2. concat函数的基本语法是什么?concat函数的基本语法如下:concat(string1, string2, ..., stringN)其中,string1到stringN是要连接的字符串,可以是字段、常量值或表达式。

3. 如何使用concat函数进行字符串连接?使用concat函数进行字符串连接非常简单,只需要将要连接的字符串按照需要的顺序依次列出即可。

例如,要将"Hello"和"World"连接成一个字符串,可以使用如下语句:SELECT concat('Hello', 'World') AS ConcatenatedString;4. 如何在concat函数中使用字段?除了常量值和表达式之外,我们还可以在concat函数中使用数据库表中的字段。

例如,假设有一个名为"FirstName"的字段和一个名为"LastName"的字段,我们可以使用如下语句将它们连接为一个完整的名字:SELECT concat(FirstName, ' ', LastName) AS FullName FROM Employees;5. concat函数对于空值的处理方式是什么?当concat函数中的任何一个参数为NULL时,函数将返回NULL。

SQL函数大全(字符串函数).

SQL函数⼤全(字符串函数).SQL Server 2005 函数⼤全字符串函数 SubString在SQL和C#中不同,⼀,select substring('abcde',-1,3)select LEN(substring('abcde',-1,3))--out'a'--out1⼆,select substring('abcde',3,4)select LEN(substring('abcde',3,4))--out'cde'--out3也就是说,选的起始位置是固定的,但是,长度是可变的.表达式:是常量、变量、列或函数等与运算符的任意组合。

以下参数中表达式类型是指表达式经运算后返回的值的类型函数名称参数⽰例说明ascii(字符串表达式)select ascii('abc') 返回 97返回字符串中最左侧的字符的 ASCII码。

char(整数表达式)select char(100) 返回 d把ASCII 码转换为字符。

介于 0 和 255 之间的整数。

如果该整数表达式不在此范围内,将返回 NULL 值。

charindex (字符串表达式1,字符串表达式2[,整数表达式])select charindex('ab','BCabTabD')返回3select charindex('ab','BCabTabD',4)返回6在字符串2中查找字符串1,如果存在返回第⼀个匹配的位置,如果不存在返回0。

如果字符串1和字符串2中有⼀个是null则返回null。

可以指定在字符串2中查找的起始位置。

difference (字符串表达式1,字符串表达式2)select difference('Green','Greene')返回4返回⼀个0到4的整数值,指⽰两个字符表达式的之间的相似程度。

sqlserver字符串函数

SQL Server 字符串函数一览1、LOWER(字符表达式) 以字符串中的字符小写返回UPPER(字符表达式)2、LTRIM(字符表达式) 截断左端英文空格RTRIM(字符表达式)3、LEN(字符表达式) 返回字符(不是字节)个数,不包含尾随的英文空格LEFT(字符表达式, 个数) 尾随英文空格也可能被返回RIGHT(字符表达式, 个数)SUBSTRING(字符表达式, 开始位置, 长度) 第一个字符的位置是14、REVERSE(character_expression) 颠倒字符串5、SPACE(integer_expression) 重复integer_expression 个空格SELECT SPACE(2) AS WANT6、STR(float_expression[, length[, decimal]]) 返回由数字转换成的字符串值7、CHARINDEX(expression1, expression2[, start_location]) expression1 在expression2 中的位置SELECT CHARINDEX('I','HEANDI') –返回68、PATINDEX(%pattern%, expression) pattern 应该具有通配符,如同likeSELECT PATINDEX('%I%','HEANDI')9、REPLACE(string_expression, string_expression2, string_expression3) 用第三个表达式替换第一个表达式中的第二个表达式SELECT REPLACE('I WANT TO FLY','FLY','SLEEP') AS WANT10、STUFF(character_expression, start, length, character_expression) 按start、length 删除第一个表达式的内容并在start 位置插入第四个表达式SELECT STUFF('I W ANT TO FLY',1,5,'SLEEP') AS W ANT11、QUOTENAME(character_string[, quote_character]) 返回带有分隔符的。

SQL Server系统函数大全

sql server 系统函数大全一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。

在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。

2、CHAR()将ASCII 码转换为字符。

如果没有输入0 ~ 255之间的ASCII 码值,CHAR()返回NULL 。

3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

4、STR()把数值型数据转换为字符型数据。

STR (<float_expression>[,length[,<decimal>]])length 指定返回的字符串的长度,decimal 指定返回的小数位数。

如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;当length 小于小数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;当返回的字符串位数小于length ,左边补足空格。

二、去空格函数1、LTRIM() 把字符串头部的空格去掉。

2、RTRIM() 把字符串尾部的空格去掉。

三、取子串函数1、left()LEFT (<character_expression>,<integer_expression>)返回character_expression 左起integer_expression 个字符。

2、RIGHT()RIGHT (<character_expression>,<integer_expression>)返回character_expression 右起integer_expression 个字符。

3、SUBSTRING()SUBSTRING (<expression>,<starting_ position>,length)返回从字符串左边第starting_ position 个字符起length个字符的部分。

sql2005连接字符串


使用附加本地数据库文件的方式连接到本地SQL Server Express实例
Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;
为何要使用Database参数如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
"Integrated Security=SSPI" 与 "Trusted_Connection=yes" 是相同的。
连接到一个SQL Server实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。
Driver={SQL Native Client};Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=yes;
SQL Native Client OLE DB Provider
标准连接
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
您是否在使用SQL Server 2005 Express 请在“Server”选项使用连接表达式“主机名称\SQLEXPRESS”。
为何要使用Database参数如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
Provider=SQLNCLI;Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档