读书人

求需多个like的sql语句解决方法

发布时间: 2012-03-26 15:46:56 作者: rapoo

求需多个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 binner join tba a    on b.code like a.code + '%'    where 你的其它条件,没有就不要了
[解决办法]
like 还可以改为 charindex,patindex等,所以组合的写法有n(n>10)种 ,这里就不写了。
[解决办法]
SQL code
--TRYselect 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 其他条件 

读书人网 >SQL Server

热点推荐