如何将列值拆分为输出中的两个值?我需要在一列中包含数字,在另一列中包含字母。
例如 1
Existing
Column
========
678J
2345K
我需要输出:
Column 1 Column 2
======== ========
678 J
2345 K
现有列可以包含4个或5个字符,如示例所示。没有空间。
提前致谢!!
答案 0 :(得分:1)
您可以将所有字母转换为空格&将它们剥离,然后用另一列中的数字执行相反的操作:
SELECT trim(translate(mycol,repeat(' ',26),'ABCDEFGHIJKLMNOPQRSTUVWXYZ')) as col1,
trim(translate(mycol,repeat(' ',10),'0123456789')) as col2
FROM mytable
根据需要进行调整以翻译其他字符。
答案 1 :(得分:0)
我不确定WarrenT解决方案的性能,但它看起来非常重的解决方案。它完成了它应该做的事情,对数据的限制很少。如果您对数据有更多了解,可以进行优化。
字符串始终以1结尾,只有一个字母
select left(mycol, length(mycol)-1), right(mycol,1) from mytable