SUBSTRING函数截取数据库表中的部分描述

    我们在网站开发中,在商品、个人简历等列表中并不显示完整的描述,只是其中的一部分(完整的描述只在详细页中显示)。在T-SQL中,获取字符串第一个字符的函数是SUBSTRING,在提取完整描述的一部分后,用操作符“+”在尾部添加“...”;
     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。

    下面的SELECT查询返回所有描述的前15个字符,然后添加“...”;
    以Northwind数据库为例,代码示例如下:
SELECT  substring(ProductName, 1,10+ '' AS 'Short ProductName'
FROM  Products
查询将返回类似如下的部分数据:
Short ProductName
-----------------
Alice Mutt...     
Aniseed Sy...     
Boston Cra...     
Camembert ...     
Carnarvon ...     
Chai...           
Chang...          
Chartreuse...     
Chef Anton...     
Chef Anton...    

posted @ 2007-09-04 22:03  金戈铁马  阅读(2934)  评论(0编辑  收藏  举报