text只能被下列函数作用:
函数
语句
DATALENGTH
READTEXT
PATINDEX
SET TEXTSIZE
SUBSTRING
UPDATETEXT
TEXTPTR
WRITETEXT
TEXTVALID
一.语句:
1.WRITETEXT
DECLARE @text  varchar(200)
SELECT @text  =  TEXTPTR(text) FROM  asdf  WHERE  inttest = 1
WRITETEXT asdf.[text]  @text 'New Moon Books (NMB) has just released another top
ten publication. '
2.UPDATETEXT
DECLARE @TEXT VARCHAR(200)
SELECT @TEXT =TEXTPTR([text]) FROM asdf
UPDATETEXT asdf.[text] @TEXT NULL 0 'KSADHFDKJFH'
SELECT * FROM asdf
3.SET 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 varcharvarbinarytextimagenvarchar ntext 数据类型特别有用,因为这些数据类型可以存储可变长度数据。
2.TEXTPTR ()
TEXTPTR() 函数返回一个指向存储文本的第一个数据库页的指针.其返回值是一个VARBIN
ARY (16) 类型的二进制字符串.如果数据类型为TEXT NTEXT IMAGE的列没有赋予初值,TEXTPTR() 函数返回一个NULL 指针.
3. TEXTVALID()
TEXTVALID() 函数语法如下:
TEXTVALID (<'lumn'>, )
TEXTVALID() 函数用于检查指定的文本指针是否有效.如果有效,则返回1; 无效,则返回0. 如果列未赋予初值,则返回NULL .
4. PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有到该模式,则返回零。
语法
PATINDEX ( '%pattern%' , expression )
参数
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。
expression
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。
返回类型
int
注释
PATINDEX text 数据类型很有用;除 IS NULLIS NOT NULL LIKE(这些是 Where 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 Where 子句中。
例一:
Northwind.dbo.Categories表中Description字段中是包含单词“Bread”“bread”的所有记录,那么选择语句就可能是这样:


Select Description from Northwind.dbo.Categories
Where patindex('%[b,B]read%',description) > 0
PATINDEX 中可以使用通配符来确定大写和小写的“b”

例二:
Northwind.dbo.Categories表中Description字段中是包含单词“Bread”“bread”,且第二子字母不是“e”的记录。

select Description from Northwind.dbo.Categories   
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的表达式,制定字符串的长度。
Sqlsubstring的返回值:
  如果expression是一种支持的字符数据类型,则返回字符数据。如果expression是一种支持的二进制数据类型,则返回二进制数据。
返回字符串类型与给定表达式的类型相同(下面所示内容除外)
给定表达式
返回类型
Image
Varbinary
nText
nvarcha
6.CHARINDEX
返回字符串中指定表达式的起始位置。
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
expression1
一个表达式,其中包含要寻的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2write的返回值 的起始位置开始搜索。
返回类型
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。