1

我想编写一个转换 varchar 数据的 SQL 更新脚本。

表单的字符串8:0:27:e:2b:4b必须转换为08 00 27 0E 2B 4B.

4

1 回答 1

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来证明它。

现在,该查询将每个部分放在自己的字段中 - 如果您愿意,您当然可以连接这些值 - 这取决于您。

于 2013-09-11T13:00:28.943 回答