2024年2月10日发(作者:)

text只能被下列函数作用:

函数

DATALENGTH

PATINDEX

SUBSTRING

TEXTPTR

TEXTVALID

一.语句:

READTEXT

SET TEXTSIZE

UPDATETEXT

WRITETEXT

语句

EXT

DECLARE

@text

SELECT

@text = TEXTPTR(text) FROM asdf WHERE inttest = 1

WRITETEXT asdf.[text] @text 'New Moon Books (NMB) has just released another top ten

publication. '

varchar(200)

TEXT

DECLARE @TEXT VARCHAR(200)

SELECT @TEXT =TEXTPTR([text]) FROM asdf

UPDATETEXT asdf.[text] @TEXT NULL 0 'KSADHFDKJFH'

SELECT * FROM asdf

TEXTSIZE

INSERT asdf ([text]) VALUES('JSAHDKSAHF SDAFKDSHFIHSD SDFHKSDH ')

SET TEXTSIZE 10

SELECT * FROM asdf

SET TEXTSIZE 20

SELECT * FROM asdf

4. READTEXT

DECLARE @TEXT VARBINARY(16)

SELECT @TEXT = TEXTPTR([text]) FROM asdf WHERE inttest = 3

READTEXT asdf.[text] @TEXT 1 9

二.函数

1. DATALENGTH

DATALENGTH 对 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型特别有用,因为这些数据类型可以存储

可变长度数据。

R ()

TEXTPTR() 函数返回一个指向存储文本的第一个数据库页的指针.其返回值是一个VARBINARY (16)

类型的二进制字符串.如果数据类型为TEXT、 NTEXT 或IMAGE的列没有赋予初值,则TEXTPTR()

函数返回一个NULL 指针.

3.

TEXTVALID()

TEXTVALID() 函数语法如下:

TEXTVALID (<''>, )

TEXTVALID() 函数用于检查指定的文本指针是否有效.如果有效,则返回1; 无效,则返回0. 如果列未赋予初值,则返回NULL 值.

4. PATINDEX

返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

语法

PATINDEX ( '%pattern%' , expression )

参数

pattern

一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。

expression

一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。

返回类型

int

注释

PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 Where 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 Where 子句中。

例一:

找出ries表中Description字段中是包含单词“Bread”或“bread”的所有记录,那么选择语句就可能是这样:

Select Description from ries

Where patindex('%[b,B]read%',description) > 0

PATINDEX 中可以使用通配符来确定大写和小写的“b”

例二:

找出ries表中Description字段中是包含单词“Bread”或“bread”,且第二子字母不是“e”的记录。

select Description from ries

where patindex('%[b,B]read%',description) > 0 and patindex('_[^e]%',description) = 1

通过在条件语句中增加一个使用^通配符的PATINDEX函数,我们可以过滤掉“Dessert, candies,

and sweet breads”这条记录。上面的查询结果只有一条记录。

5. SUBSTRING

SUBSTRING 用于返回字符,二进制,文本或图像表达式的一部分。

语法:SUBSTRING(EXPRESSION,START,LENGTH)

参数:

EXPRESSION : 用于返回字符,二进制,文本,图像,列或包含列的表达式。请勿使用聚合函数的表达式。

Start :整数或可以隐式转换为int的表达式,制定字符串的开始位置

Length:整数或可以隐式转换为int的表达式,制定字符串的长度。

Sql中substring的返回值:

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

返回字符串类型与给定表达式的类型相同(下面所示内容除外)

给定表达式

Image

nText

Varbinary

nvarcha

返回类型

DEX

返回字符串中指定表达式的起始位置。

语法

CHARINDEX (

expression1

,

expression2 [ ,

start_location

] )

参数

expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2

属于字符串数据类型分类。

start_location

expression2 中搜索

expression1 时的起始字符位置。如果没有给定

start_location,而是一个负数或零,则将从

expression2 的起始位置开始搜索。

返回类型

int

注释

如果

expression1 或

expression2

之一属于 Unicode 数据类型(nvarchar 或

nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。

如果

expression1 或

expression2 之一为 NULL 值,则当数据库兼容级别为

70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在

expression1 和

expression2 都为 NULL 时返回 NULL 值。

如果在

expression2

内没有找到

expression1,则 CHARINDEX 返回 0。

示例

SELECT CHARINDEX('J',[text])

FROM asdf

SELECT CHARINDEX('J',[text],6)

FROM asdf