如何仅将数字分成两列

时间:2014-05-02 16:14:54

标签: sql sql-server

我想将以下列分为两列 @之前的那个和@之后的那个 如果我需要编写自己的函数,只要不是硬编码就可以了。

12 @ 300
24 @ 524
1 @ 788
412 @ 63
014 @ 786
16 @ 8063

谢谢大家。

2 个答案:

答案 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编写的,但大多数应用程序都具有相同的字符串函数。

希望这有帮助。