加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 中的 substring函数

发布时间:2020-12-12 14:28:21 所属栏目:MsSql教程 来源:网络整理
导读:http://www.cnblogs.com/lingxyd/archive/2009/02/28/1400263.html SUBSTRING 返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft? SQL Server? 数据类型的更多信息,请参见数据类型。 语法 SUBSTRING ( expression ,
textvarcharimagevarbinaryntextnvarchar
注释

在字符数中必须指定使用 ntextchar varchar 数据类型的偏移量(start length)。在字节数中必须指定使用 textimagebinary varbinary 数据类型的偏移量。

说明??兼容级别可能影响返回值。有关兼容级别的更多信息,请参见 sp_dbcmptlevel。

?

示例
A. 在字符串上使用 SUBSTRING

下例显示如何只返回字符串的一部分。该查询在一列中返回 authors 表中的姓氏,在另一列中返回 authors 表中的名字首字母。

USE pubs
SELECT au_lname,SUBSTRING(au_fname,1,1)
FROM authors
ORDER BY au_lname

下面是结果集:

au_lname
---------------------------------------- -
Bennet                                   A
Blotchet-Halls                           R
Carson                                   C
DeFrance                                 M
del 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 表内的每个 textimage 数据列中返回前 200 个字符。text 数据以 varchar 的形式返回,image 数据则以 varbinary 的形式返回。

USE pubs
SELECT pub_id,SUBSTRING(logo,10) AS logo,SUBSTRING(pr_info,10) AS pr_info
FROM pub_info
WHERE 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.TABLES
WHERE table_name = 'npub_info')
DROP TABLE npub_info
GO
-- Create npub_info table in pubs database. Borrowed from instpubs.sql.
USE pubs
GO
CREATE TABLE npub_info
(
pub_id         char(4)           NOT NULL
REFERENCES 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...',1)
GO
INSERT 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,35) AS pr_info,SUBSTRING(npr.pr_info,35) AS npr_info
FROM pub_info pr INNER JOIN npub_info npr
ON pr.pub_id = npr.pub_id
ORDER BY pr.pub_id ASC

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

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 数据上使用 SUBSTRINGstartlength 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text

?

返回类型

如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。

返回字符串的类型与给定表达式的类型相同(表中显示的除外)。

给定的表达式 返回类型
    推荐文章
      热点阅读