0

如何在输出中将列值拆分为两个值?我需要在一列中有数字,在另一列中有字母。

例如1

Existing
Column 
========
678J
2345K

我需要输出为:

Column 1            Column 2
========            ========
678                   J
2345                  K

现有列可以有 4 或 5 个字符,如示例中所示。没有空间。

提前致谢!!

4

2 回答 2

1

您可以将所有字母转换为空格并将它们剥离,然后对另一列中的数字执行相反的操作:

SELECT trim(translate(mycol,repeat(' ',26),'ABCDEFGHIJKLMNOPQRSTUVWXYZ')) as col1,
       trim(translate(mycol,repeat(' ',10),'0123456789')) as col2
  FROM mytable

根据需要调整以翻译其他字符。

于 2013-11-08T23:26:50.743 回答
0

我不确定 WarrenT 解决方案的性能,但它看起来像是非常重的解决方案。它在对数据几乎没有限制的情况下完成了它应该做的事情。如果您对数据了解更多,则可以进行优化。

字符串总是以 1 结尾并且只有一个字母

select left(mycol, length(mycol)-1), right(mycol,1) from mytable
于 2013-11-11T15:20:53.193 回答