I currently have only one column in a table. Each row contains the exact same amount of characters. I need a way to be able to split this one column into multiple columns. The table has over 1.1 million rows, so efficiency in code is pretty important. All of the rows are set up with the same structure, meaning the first 5 characters are always dedicated for firstname, the next 6 are always for lastname for example. I know how to take the left most characters using: 

```
insert into table2
select left(column1,2), substring(column1, 3, len(column1) ) from table1

```

The problem with the above, is that 1) it creates a new table instead of modifying the existing. And 2) Once I have the first set of characters split into a column I don't know how to grab the next set.

Below is an example of how I would like it to work:

Current

Column 1

* abcdefghijklmnop
* qrstuvwxyz123456

What I would like:

Column 1 ----------- Column 2 --------- Column 3

* abcdefg--------------hij----------------klmnop
* qrstuvw--------------xyz----------------123456

picture below:

[![Example](https://i.stack.imgur.com/qS7kI.png)](https://i.stack.imgur.com/qS7kI.png)

I can usually fix this through how I important the data in SQL. However the txt file that I use to import the data has no way to dilimate the columns correctly so it has to all be brought in as one column.