select * from TTT where (C1||C2='AB' or C1||C2='BA') and (length(C3)=0 or C3 is null)
由阿涛的方法改进来的 select * from ttt where c1||c2||c3 like '%A%' and c1||c2||c3 like '%B%'
comcn(大XX) 的方法,根本不能满足 只有 这个条件。
select * from ttt where (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'AB' or (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'BA'length的条件是多余的,因为,后面的等于的条件就决定了,他们是2位的. 是Null的情况下,是不需要转换的, 但是要考虑空格,看数据库的字段的类型了。
select * from ttt where nvl(c1,1)*nvl(c2,1)*nvl(c3,1)='AB'
要是3个参数的话,按楼上的写法: c1||c2||c3='ABC' OR c1||c2||c3='ACB' OR c1||c2||c3='BAC' OR c1||c2||c3='BCA' OR c1||c2||c3='CAB' OR c1||c2||c3='CBA' 10个参数我还不如用算盘呢.......:(
如果是 "只有" 的话 Croatia(Croatia)的方法就行了啊 select * from ttt where (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'AB' or (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'BA'
select * from ttt
where length(c1||c2||c3)=2 and instr(c1||c2||c3,'A')>0 and instr(c1||c2||c3,'B')>0
where length(c1||c2||nvl(c3,''))=2
and ( (c1||c2||nvl(c3,''))='AB'
or (c1||c2||nvl(c3,''))='BA')
如果C1,C2,C3是不定长字符,难道还要我先数好
C1||C2||C3 多长么???
select * from ttt
where c1||c2||c3 like '%A%' and c1||c2||c3 like '%B%'
where (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'AB' or (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'BA'length的条件是多余的,因为,后面的等于的条件就决定了,他们是2位的.
是Null的情况下,是不需要转换的,
但是要考虑空格,看数据库的字段的类型了。
where nvl(c1,1)*nvl(c2,1)*nvl(c3,1)='AB'
c1||c2||c3='ABC' OR
c1||c2||c3='ACB' OR
c1||c2||c3='BAC' OR
c1||c2||c3='BCA' OR
c1||c2||c3='CAB' OR
c1||c2||c3='CBA' 10个参数我还不如用算盘呢.......:(
Croatia(Croatia)的方法就行了啊 select * from ttt
where (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'AB' or (c1||c2||c3||c4||c5||c6||c7||c8||c9||c10) = 'BA'