我需要移调(我希望单词transpose是正确的)一串字母写成一列中的两个字母
我的数据如下:它基本上是一个两个字母的代码混合在一起,非常凌乱
ColumnID
HG34
HG/WK
HG\34
54/OF
AS\MM
AC54
AC54MM
以及我希望将上述内容转换为以下内容:
ColumnID
HG
34
WK
54
OF
AS
MM
AC
是否有可以执行此操作的查询?
我不介意结果是否重复,因为我可以随时清理它
谢谢
答案 0 :(得分:4)
select substring(ColumnID, 1, 2) from your_table
union
select substring(replace(replace(ColumnID,'\\',''),'/',''), 3, 2) from your_table
union
select substring(replace(replace(ColumnID,'\\',''),'/',''), 5, 2) from your_table
where length(replace(replace(ColumnID,'\\',''),'/','')) = 6
答案 1 :(得分:1)
select distinct substring(col, x*2-1, 2)
from your_table
cross apply (select replace(replace(ColumnID,'\',''),'/',''))c(col)
inner join (values(1),(2),(3))x(x) on len (col) >= x * 2 -- as much pairs as needed