我们都知道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

 

相关文章:

  • 2022-02-22
  • 2022-12-23
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2021-10-04
  • 2021-12-01
  • 2022-12-23
  • 2022-03-09
相关资源
相似解决方案