我们都知道Text类型的字段不能进行<>,=等比较操作,也不能使用replace函数替换。
要比较Text类型,只能使用like.
如果不用like,有没有其它办法来进行比较呢?

答案肯定是有的,使用SUBSTRING函数转换。
--例子

 

代码
IF OBJECT_ID('tempdb..#TestText') IS NOT NULL
DROP TABLE #TestText

CREATE TABLE #TestText (
Text1
text,
Text2
text,
varchar1
varchar(max),
varchar2 varchar(max))
INSERT INTO #TestText(Text1,
Text2,
varchar1,
varchar2)
VALUES('a text string for col1','a text string for col2','varchar_a','varchar_b')
--Text不可以这样操作
SELECT * FROM #TestText WHERE Text1 <> Text2
SELECT * FROM #TestText WHERE Text1 = 'a'

--nvarchar可以这样操作
SELECT * FROM #TestText WHERE varchar1 <> varchar2

--使用SUBSTRING函数,一切都可以解决了
SELECT * FROM #TestText WHERE SUBSTRING(Text1,1,datalength(Text1)) <> SUBSTRING(Text2,1,datalength(Text2))

SELECT * FROM #TestText WHERE SUBSTRING(Text1,1,datalength(Text1)) = 'a'

SELECT replace(SUBSTRING(Text1,1,datalength(Text1)),'a','b') FROM #TestText

 

posted on 2010-05-19 13:06  coreyliu  阅读(2087)  评论(0编辑  收藏  举报