如何使我的代码更有效率(初学者 :)
How to make my code more efficient (beginner :)
有人可以推荐一个更短的代码来做同样的事情吗?
CASE
WHEN {location} LIKE '%00' OR {location} LIKE '%010' OR {location} LIKE '%011' OR {location} LIKE '%012' OR {location} LIKE '%013' THEN '1'
WHEN {location} LIKE '%38' OR {location} LIKE '%039' OR {location} LIKE '%040' OR {location} LIKE '%041' OR {location} LIKE '%042' OR {location} LIKE '%043' OR {location} LIKE '%044' OR {location} LIKE '%046' OR {location} LIKE '%047' THEN '2'
ELSE '3'
END
而不是几个 OR 你可以尝试使用范围
CASE when substr({location}, -2) ='00'
or cast(substr({location}, -2)) AS UNSIGNED )between 10 and 13 then '1'
when cast(substr({location}, -2)) AS UNSIGNED) between 38 and 47 then '2'
else '3'
end
如果您使用的是支持正则表达式的数据库,那么您可以大大简化这一过程。例如,在 MySQL:
(CASE WHEN {location} REGEXP '00$|010$|011$|012$|013$' THEN '1'
WHEN {location} REGEXP '38$|039$|040$|041$|042$|043$|044$|046$|047$' THEN '2'
ELSE '3'
END)
有人可以推荐一个更短的代码来做同样的事情吗?
CASE
WHEN {location} LIKE '%00' OR {location} LIKE '%010' OR {location} LIKE '%011' OR {location} LIKE '%012' OR {location} LIKE '%013' THEN '1'
WHEN {location} LIKE '%38' OR {location} LIKE '%039' OR {location} LIKE '%040' OR {location} LIKE '%041' OR {location} LIKE '%042' OR {location} LIKE '%043' OR {location} LIKE '%044' OR {location} LIKE '%046' OR {location} LIKE '%047' THEN '2'
ELSE '3'
END
而不是几个 OR 你可以尝试使用范围
CASE when substr({location}, -2) ='00'
or cast(substr({location}, -2)) AS UNSIGNED )between 10 and 13 then '1'
when cast(substr({location}, -2)) AS UNSIGNED) between 38 and 47 then '2'
else '3'
end
如果您使用的是支持正则表达式的数据库,那么您可以大大简化这一过程。例如,在 MySQL:
(CASE WHEN {location} REGEXP '00$|010$|011$|012$|013$' THEN '1'
WHEN {location} REGEXP '38$|039$|040$|041$|042$|043$|044$|046$|047$' THEN '2'
ELSE '3'
END)