decode可以使用like么?

时间:2022-06-18 20:29:03
decode可以使用like么?

有一组数据
A1        A2
qwr       2
gssdg     3
df        9
gdg       8
fd        4

写一个view,想实现一个功能,当A1含有g的时候,把A2设置为0. 当A1含有f的时候,设置A2为00.其余就是本来的A2。两个条件不会同事出现的,这种情况不用考虑。

7 个解决方案

#1



select A1,(case when A1 like '%g%' then 0
                when A1 like '%f%' then 00
                else A2 end) A2 from tab

#2


-- decode 函数不能用 like ,也不能比较范围值,只能对比具体值!

-- 要用 like 或 where ... between ... and 的话,只能考虑用 case ... when 代替!

#3


不能用like   可以考虑instr 

但是需要注意  decode只能判断一个值  也就是 一般都是判断  如果存在f 怎么怎么办

可以试试 ||  一起判断俩值~~


当然 还是case比较方便~

#4


楼上说得很对

#5


引用 2 楼 luoyoumou 的回复:
-- decode 函数不能用 like ,也不能比较范围值,只能对比具体值!

-- 要用 like 或 where ... between ... and 的话,只能考虑用 case ... when 代替!

+1

#6


虑用 case ... when 代替

#7


不能用like的表一个对比的值

#1



select A1,(case when A1 like '%g%' then 0
                when A1 like '%f%' then 00
                else A2 end) A2 from tab

#2


-- decode 函数不能用 like ,也不能比较范围值,只能对比具体值!

-- 要用 like 或 where ... between ... and 的话,只能考虑用 case ... when 代替!

#3


不能用like   可以考虑instr 

但是需要注意  decode只能判断一个值  也就是 一般都是判断  如果存在f 怎么怎么办

可以试试 ||  一起判断俩值~~


当然 还是case比较方便~

#4


楼上说得很对

#5


引用 2 楼 luoyoumou 的回复:
-- decode 函数不能用 like ,也不能比较范围值,只能对比具体值!

-- 要用 like 或 where ... between ... and 的话,只能考虑用 case ... when 代替!

+1

#6


虑用 case ... when 代替

#7


不能用like的表一个对比的值