日期:2014-05-18  浏览次数:20553 次

求需多个like的sql语句
有两个表,一个表TbA字段code根据条件查出不止一条数据
如 
code pid
A0 1
B0 2
A0B1 3
一个表TbB 字段code ,uname 

code uname
A0B0 aaaa
A0B1C1 bbbb
A0 cdsd
B1 dssfs  
需要的数据是 查出表tbB中code字段以表tba查出的code字段左匹配的数据
如果tba查出的只有一条数据,可以这样写
select code,uname from tbb where code like (select code from tba where '一长串条件')+'%'
问题是不止一条数据,如果支持这样语法的话如
select code,uname from tbb where code like in ('A0%','B1%')

求用一条语句得出结果,不要用游标


------解决方案--------------------
用函数可以不?
------解决方案--------------------
05下也可以用cross apply

SQL code
select b.* from tbb b
inner join tba a
    on b.code like a.code + '%'
    where 你的其它条件,没有就不要了

------解决方案--------------------
like 还可以改为 charindex,patindex等,所以组合的写法有n(n>10)种 ,这里就不写了。
------解决方案--------------------
SQL code
--TRY
select b.code,b.uname from tbb b ,tba a where  patindex('%'+ltrim(b.code)+'%',ltrim(a.code))>0

------解决方案--------------------
SQL code
select b.* from tbB b right join tbA a on charindex(a.code,b.code)=1 where 其他条件