将String开始到新列

时间:2016-07-21 21:36:14

标签: sql-server ssms

我终于将这个巨大的文本文件导入SSMS。由于格式是Ragged Right,我不小心将两列放入一列。所以我添加了一个带有相应标题的新列。但是现在在我的专栏def_nam中,我在实际列值前面有4个不属于那里的字符。

示例:

def_name                        rea
PLEA WUNSCH, JOHN ROGER         NULL
SFJS VILLARREAL, JACOB ANDERS   NULL
DISP TORRES, STEVEN             NULL
DISP ATKINSON, JAMES FRANKLIN   NULL
HEAR GODARZI, FOROUZAN          NULL
NTRL REYES, MANUEL JR           NULL
HEAR HANLON, THOMAS JOSEPH      NULL
HEAR HANLON, THOMAS JOSEPH      NULL
DISP WILSON, MELISSA WAYNETTE   NULL
HEAR PROSPER, TIMOTHY DANIEL    NULL

所以目标如下:我想在此列中拆分字符串,在FIRST空格之前抓取所有字符,并将该值插入到名为rea的新EMPTY列中

因此我们会以此结束。

def_name                    rea
WUNSCH, JOHN ROGER          PLEA
VILLARREAL, JACOB ANDERS    SFJS
TORRES, STEVEN              DISP
ATKINSON, JAMES FRANKLIN    DISP
GODARZI, FOROUZAN           HEAR
REYES, MANUEL JR            NTRL
HANLON, THOMAS JOSEPH       HEAR
HANLON, THOMAS JOSEPH       HEAR
WILSON, MELISSA WAYNETTE    DISP
PROSPER, TIMOTHY DANIEL     HEAR

为这样的事情编写什么是最好的查询?考虑到我有超过300万行。

1 个答案:

答案 0 :(得分:3)

你可能会做这样的事情。

update YourTable
set rea = LEFT(def_name, 4)
    , def_name = stuff(def_name, 1, 5, '')