在数字格式的MAC地址的db值中,对于我的查询,我需要像XX:XX:XX:XX:XX:XX
这样的实际格式的值。
示例:对于号码9817108886245
,实际MAC地址值必须为08:ED:B9:49:B2:E5
。
我写了下一个查询:
select regexp_replace(lpad(upper(trim(to_char(9817108886245,
'xxxxxxxxxxxx'))), 12, '0'),
'^([A-Z0-9]{2})([A-Z0-9]{2})([A-Z0-9]{2})([A-Z0-9]{2})([A-Z0-9]{2})([A-Z0-9]{2})$'
, '\1:\2:\3:\4:\5:\6') as MAC
from dual;
可以简化我的查询吗?
答案 0 :(得分:1)
那么这将是更短的查询字符串,但不完全更简单
select substr(regexp_replace(
upper(to_char(9817108886245,'00xxxxxxxxxxxx')),'([A-F0-9]{2})',':\1'),6) as MAC
from dual;