我想将以下列分为两列 @之前的那个和@之后的那个 如果我需要编写自己的函数,只要不是硬编码就可以了。
12 @ 300 24 @ 524 1 @ 788 412 @ 63 014 @ 786 16 @ 8063
谢谢大家。
答案 0 :(得分:0)
尝试
SELECT RTRIM(LEFT(column1, CHARINDEX('@', column1) - 1)) number1,
LTRIM(RIGHT(column1, LEN(column1) - CHARINDEX('@', column1))) number2
FROM table1
输出:
| NUMBER1 | NUMBER2 | |---------|---------| | 12 | 300 | | 24 | 524 | | 1 | 788 | | 412 | 63 | | 014 | 786 | | 16 | 8063 |
这是 SQLFiddle 演示
答案 1 :(得分:0)
我不知道您使用的SQL风格,但在大多数应用程序中,以下内容都可以使用:
select
substr('yourString',1,index('yourString','@') - 1) as col1,
substr('yourString',index('yourString','@') + 1) as col12,
from
yourTable
;
以上代码是为teradata sql server编写的,但大多数应用程序都具有相同的字符串函数。
希望这有帮助。