表TEST 有 A, B, C, D, E.....列.我现在想写个查询包含如下意思的SQL.select * from TEST t
where
(case when length(t.A) = 6 then t.B = '******'
else length(t.A) = 4 then t.C = '******'
end)
请问如何实现啊?
谢谢.
where
(case when length(t.A) = 6 then t.B = '******'
else length(t.A) = 4 then t.C = '******'
end)
请问如何实现啊?
谢谢.
where
(length(t.A) = 6 and t.B = '******')
or(length(t.A) = 4 and t.C = '******' )
end)
where
case when length(t.A) = 6 then t.B when length(t.A) = 4 then t.C
end = '******'
select * from tu_*** t1, tu_*** t2 where
(case when length(t1.a) = 4 then
t1.a = substr(t2.a,1,4)
else
substr(t1.a,5,2) = substr(t2.a, 5,2) end)改成楼上的那样用OR好象行不通,逻辑也是不对的.
能再帮忙想想吗?
t1.a = substr(t2.a,1,4) or
substr(t1.a,5,2) = substr(t2.a, 5,2)
这个逻辑上能满足你那个条件的需求
select * from tu_*** t1, tu_*** t2 where
t1.a = substr(t2.a,1,4) or(
substr(t1.a,5,2) = substr(t2.a, 5,2) and length(t1.a) >= 5 )