`
bluely
  • 浏览: 11313 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL:SUBSTRING的用法

    博客分类:
  • SQL
阅读更多
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 数据类型,则返回二进制数据。

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

给定的表达式 返回类型
text varchar
image varbinary
ntext nvarchar


注释
在字符数中必须指定使用 ntext、char 或 varchar 数据类型的偏移量(start 和 length)。在字节数中必须指定使用 text、image、binary 或 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 表内的每个 text 和 image 数据列中返回前 200 个字符。text 数据以 varchar 的形式返回,image 数据则以 varbinary 的形式返回。

USE pubs
SELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,
   SUBSTRING(pr_info, 1, 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...',0,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, 1, 35) AS pr_info,
   SUBSTRING(npr.pr_info, 1, 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


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GTBGT525/archive/2009/08/28/4491859.aspx
分享到:
评论

相关推荐

    sqlserver substring函数使用方法小结

    在操作sqlserver时候用到了substring函数 SUBSTRING ( expression, start, length ) 参数 expression 字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。 start 整数或可以隐式...

    Sql Server中Substring函数的用法实例解析

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring ...

    详解SqlServer数据库中Substring函数的用法

    总的来说,Substring函数在SQL Server中用于灵活地处理字符串,而与之配合使用的 `CHARINDEX` 函数则可以帮助确定截取的起始位置。这些函数在处理数据库中的文本数据时非常实用,尤其是在需要提取特定部分信息或者...

    lambda-LINQ-SQL对照表

    例如,使用`StartsWith`方法: ```csharp // SQL: SELECT e.* FROM HumanResources.Employee WHERE e.JobTitle LIKE 'Vice%' OR SUBSTRING(e.JobTitle, 0, 3) = 'Pro' var employeesByTitle = Employees.Where(e ...

    oracle中 substring函数的使用

    ### Oracle中的SUBSTR函数详解 在Oracle数据库中,`SUBSTR`函数是一个非常重要的字符串处理函数,用于从指定的字符串中提取子串。...熟练掌握`SUBSTR`函数的使用对于提高SQL查询效率和数据处理能力具有重要意义。

    数据库中的substring

    在IT领域,数据库是存储和管理数据的核心工具,而`substring`函数是数据库查询中一个非常...在实际工作中,结合源码理解和使用工具,如SQL查询优化器,可以帮助我们更好地掌握`substring`的使用方法,提升工作效率。

    SQL函数用法大全.pdf

    ### SQL函数用法大全 #### 一、概述 在数据库管理与数据分析领域,SQL作为一种标准的语言,被广泛应用于数据检索、处理及管理等任务中。本文档旨在提供一个全面的SQL函数指南,涵盖从基本查询到复杂数据处理的各种...

    sqlserver sql 实现 escape 解码

    下面是一种可能的方法: 1. 首先,我们需要将百分号("%")后的16进制数转换为十进制数。这可以通过使用`SUBSTRING`和`CONVERT`函数来实现,`SUBSTRING`用于提取16进制数,`CONVERT`用于将其转换为十进制。 2. 接...

    substring.docx

    `substring`在其他编程语言中也有类似的应用,例如在Python中,你可以使用切片操作符`[start:end]`来实现字符串截取,而在C#中,`Substring`方法的使用方式与Java类似。 总的来说,`substring`功能强大且灵活,可...

    Oracle与SQL Server 函数大全

    本文旨在为初学者提供Oracle与SQL Server两种主流数据库管理系统中常用函数的对比分析及其具体用法示例。通过这些示例,学习者可以更好地理解如何在实际操作中运用这些函数来处理数据。 #### 数学函数 1. **绝对值...

    SQL Substring提取部分字符串

    这个函数在不同的数据库管理系统(DBMS)中可能有不同的名称,例如 MySQL 使用 `SUBSTR()` 或 `SUBSTRING()`,Oracle 使用 `SUBSTR()`,而 SQL Server 则只使用 `SUBSTRING()`。 **功能详解:** `substring` 函数的...

    Web应用安全:Sqlserver盲注.pptx

    - **基于布尔的SQL盲注**:通过构造逻辑判断,如使用`AND`和`OR`操作符结合特定的函数(如`LEFT()`, `LEN()`, `SUBSTRING()`等)来测试条件是否满足。 - **基于时间的SQL盲注**:利用系统等待或延迟来判断查询结果...

    oracle和SQL的语法区别

    SQL Server:使用SUBSTRING()截取字符串,CHARINDEX()查找子串位置,REPLACE()替换子串。 3. 数学函数: Oracle:使用ROUND()四舍五入,MOD()求余数。 SQL Server:使用ROUND()四舍五入,%运算符求余数。 4. 分组...

    在SQL查询中如何截取字符串后转成数值型?

    使用方法与`SUBSTRING`类似。 ### 转换为数值型 一旦我们从字符串中截取出所需的数字部分,下一步就是将其转换为数值型。在SQL中,有两种主要的方法可以实现这一点:`CONVERT`和`CAST`函数。 #### CONVERT 函数 ...

    sql server 函数及用法全解

    SQL Server是一款广泛使用的数据库管理系统,由微软公司开发。在SQL Server中,函数是进行数据处理和分析的关键元素。本文将全面解析SQL Server中的各种函数及其用法,帮助你提升数据库操作技能。 一、聚合函数 SQL...

    sql server日期格式转换方法大全

    如果以上方法都不能满足需求,可以创建自定义函数,利用字符串操作函数(如`SUBSTRING()`,`LEFT()`,`RIGHT()`)来构造所需格式。 理解并熟练掌握这些日期格式转换方法,将有助于在SQL Server环境中更高效地处理...

Global site tag (gtag.js) - Google Analytics