(, , ) "" case. , , , .
case , 3 , v1, v2 v3. , , v1, :
SELECT
id,
name,
case Coalesce(v1, 'dont know')
when 'Y' then 'something'
when 'K' then 'something else'
when 'dont know' then 'dont know'
else 'default'
end
from table
, , - , . , , .
, , UDF . , , ( ).
, , :
SELECT
id,
name,
coalesce(x.result, 'dont know')
from
table t
left join (
select 'Y', 'something'
union all select 'K', 'something else'
union all select '%', 'default'
) x (value, result) on t.v1 like x.value
, , LIKE. .
:
, , . , 100 000 , , , . / .
, , UDF cpu/read.
It’s usually best to spend a bit of processor if it avoids even a few reads. The “constant crawl” displayed in the execution plans for views like I used above will always have a minimal cost. This cost is much less than almost any number of views associated with disk access.
ErikE source
share