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