我想编写一个转换varchar数据的SQL更新脚本。
8:0:27:e:2b:4b
形式的字符串必须转换为08 00 27 0E 2B 4B
。
答案 0 :(得分:2)
考虑一个名为a
的表和一个名为fa
的字段,其中包含该值,此查询将为您执行此操作:
SELECT
UPPER(LPAD(SUBSTRING_INDEX(fa, ':', 1), 2, '0')),
UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -5), 2), ':', ''), 2, '0')),
UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -4), 2), ':', ''), 2, '0')),
UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -3), 2), ':', ''), 2, '0')),
UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -2), 2), ':', ''), 2, '0')),
UPPER(LPAD(REPLACE(LEFT(SUBSTRING_INDEX(fa, ':', -1), 2), ':', ''), 2, '0'))
FROM a
这是一个SQL Fiddle来证明它。
现在,该查询将每个部分放在自己的字段中 - 如果您愿意,您当然可以连接这些值 - 这取决于您。