sqlserver 中的 substring函数
来源:互联网 发布:卡硬 知乎 编辑:程序博客网 时间:2024/05/18 23:16
http://www.cnblogs.com/lingxyd/archive/2009/02/28/1400263.html
SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。
语法
SUBSTRING ( expression , start ,length )
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
说明 由于在 text 数据上使用 SUBSTRING 时start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用ntext 而非 text。
返回类型
如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。
返回字符串的类型与给定表达式的类型相同(表中显示的除外)。
注释
在字符数中必须指定使用 ntext、char 或 varchar 数据类型的偏移量(start和 length)。在字节数中必须指定使用 text、image、binary或 varbinary 数据类型的偏移量。
说明 兼容级别可能影响返回值。有关兼容级别的更多信息,请参见sp_dbcmptlevel。
示例
A. 在字符串上使用 SUBSTRING
下例显示如何只返回字符串的一部分。该查询在一列中返回 authors 表中的姓氏,在另一列中返回 authors 表中的名字首字母。
USE pubsSELECT au_lname, SUBSTRING(au_fname, 1, 1)FROM authorsORDER BY au_lname
下面是结果集:
au_lname---------------------------------------- -Bennet ABlotchet-Halls RCarson CDeFrance Mdel Castillo I...Yokomoto A(23 row(s) affected)
下例显示如何显示字符串常量 abcdef 中的第二个、第三个和第四个字符。
SELECT x = SUBSTRING('abcdef', 2, 3)
下面是结果集:
x----------bcd(1 row(s) affected)
B. 在 text、ntext 和 image 数据上使用 SUBSTRING
下例显示如何从 pubs 数据库的 publishers 表内的每个 text 和image 数据列中返回前 200 个字符。text 数据以 varchar 的形式返回,image 数据则以varbinary 的形式返回。
USE pubsSELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,SUBSTRING(pr_info, 1, 10) AS pr_infoFROM pub_infoWHERE pub_id = '1756'
下面是结果集:
pub_id logo pr_info------ ---------------------- ----------1756 0x474946383961E3002500 This is sa(1 row(s) affected)
下例显示 SUBSTRING 在 text 和 ntext 数据上的效果。首先,下例在 pubs 数据库内创建一个名为npr_info 的新表。然后,在 npr_info 表中用 pub_info.pr_info 列的前 80 个字符创建pr_info 列,并添加ü作为首字符。最后,INNER JOIN 检索所有出版商标识号以及 text 和 ntext 出版商信息列的 SUBSTRING。
IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLESWHERE table_name = 'npub_info')DROP TABLE npub_infoGO-- Create npub_info table in pubs database. Borrowed from instpubs.sql.USE pubsGOCREATE TABLE npub_info(pub_id char(4) NOT NULLREFERENCES publishers(pub_id)CONSTRAINT UPKCL_npubinfo PRIMARY KEY CLUSTERED,pr_info ntext NULL)GO-- Fill the pr_info column in npub_info with international data.RAISERROR('Now at the inserts to pub_info...',0,1)GOINSERT npub_info VALUES('0736', N'
üThis is sample text data for New Moon Books, publisher 0736 in the pubs database')INSERT npub_info values('0877', N'
üThis is sample text data for Binnet & Hardley, publisher 0877 in the pubs databa')INSERT npub_info values('1389', N'
üThis is sample text data for Algodata Infosystems, publisher 1389 in the pubs da')INSERT npub_info values('9952', N'
üThis is sample text data for Scootney Books, publisher 9952 in the pubs database')INSERT npub_info values('1622', N'
üThis is sample text data for Five Lakes Publishing, publisher 1622 in the pubs d')INSERT npub_info values('1756', N'
üThis is sample text data for Ramona Publishers, publisher 1756 in the pubs datab')INSERT npub_info values('9901', N'
üThis is sample text data for GGG&G, publisher 9901 in the pubs database. GGG&G i')INSERT npub_info values('9999', N'
üThis is sample text data for Lucerne Publishing, publisher 9999 in the pubs data')GO-- Join between npub_info and pub_info on pub_id.SELECT pr.pub_id, SUBSTRING(pr.pr_info, 1, 35) AS pr_info,SUBSTRING(npr.pr_info, 1, 35) AS npr_infoFROM pub_info pr INNER JOIN npub_info nprON pr.pub_id = npr.pub_idORDER BY pr.pub_id ASC
- SqlServer中的substring()函数
- sqlserver 中的 substring函数
- sqlserver 中的 substring函数
- sqlserver中的substring函数小结
- sqlserver substring函数
- sqlserver substring函数
- sqlserver中的substring用法,oracle的substr,js中的substring
- sqlserver中的substring用法,oracle的substr,js中的substring
- SQLSERVER存储过程SubString()函数和C# string.Substring区别
- SqlServer中的CHARINDEX 函数
- sqlserver中的函数
- sqlserver中的日期函数
- sqlserver 中的转换函数
- sqlserver中的时间函数
- sqlserver中的CAST()函数
- SQLServer中的日期函数
- oracle中截取字符串substr对应与sqlserver中的substring
- 关于SubString在C#,JAVA,Oracle,SQLServer中的不同用法
- Lua functions
- IOS开发中常量的处理
- IE浏览器老是假死怎么办 IE假死的解决办法
- 修改cdc里面的java的内容
- HDU 1175 连连看
- sqlserver 中的 substring函数
- 老翅几回寒暑
- MVC第一个增删查改
- DOJOX DateTextBox 问题
- Quartz 报错,改用Spring task
- 理解EnterCriticalSection 临界区
- Mysql5.0没有nvarchar,national varchar就是varchar
- 修改MYSQL密码问题以及修改PhpMyAdmin连接MYSQL的密码问题
- 【Eclipse基础 003】 快捷键