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 对 varchar、varbinary、text、image、nvarchar 和 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 )
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有到该模式,则返回零。
语法
PATINDEX ( '%pattern%' , expression )
参数
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。
expression
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。
返回类型
int
注释
PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 Where 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 Where 子句中。
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。
expression
一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。
返回类型
int
注释
PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 Where 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 Where 子句中。
例一:
出Northwind.dbo.Categories表中Description字段中是包含单词“Bread”或“bread”的所有记录,那么选择语句就可能是这样:
出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的表达式,制定字符串的长度。
Sql中substring的返回值:
如果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小时内删除。
发表评论