像%columnB这样的columnA

时间:2019-12-05 12:50:01

标签: sql sql-server

我正在尝试做select * where column1 = % column2 %

这是我的查询

select ticket_cp, id_con, raison_sociale, date, Type, RSP
from en_cours,
     Base_Client 
where Base_Client.Client like '%'+raison_sociale+ '%' 

错误:

  

在add运算符中,数据类型varchar和text不兼容。

2 个答案:

答案 0 :(得分:2)

您可以将cast text变成varchar(max)

select ticket_cp, id_con, raison_sociale, date, Type, RSP 
from en_cours e
inner join base_Client b 
    on  b.Client like '%'+ cast(e.raison_sociale as varchar(max)) + '%' 

或者,如果b.Client也是text

    on  cast(b.Client as varchar(max)) 
        like   '%'+ cast(e.raison_sociale as varchar(max)) + '%' 

注释(其中大部分已被注释):

  • text已过时;您想改用nvarchar(max)(或nvarchar(max)

  • 始终使用显式的标准联接(带有on关键字),而不是隐式的老式联接(在from子句中带有逗号)

  • select子句中的
  • 列应使用其所属表的别名进行限定,以避免任何歧义

答案 1 :(得分:0)

您还可以搜索并替换。...

SELECT ?.ticket_cp, ?.id_con, a.raison_sociale, ?.date, ?.Type, ?.RSP
FROM en_cours a
INNER JOIN Base_Client b
 ON b.Client LIKE '%', a.raison_sociale '%'