2011-11-02 4 views
0

Я делаю проект с VS2010 с использованием C#.Разделение одного столбца на два столбца в SQL Server CE

У меня есть локальная база данных (файл .sdf). Вот пример содержание моей базы данных:

COLUMN1

Ned Stark 
Tyrion Lannister 
Daenerys Targaryen 
Robert Baratheon 

То, что я пытаюсь сделать, это разделить имена и фамилии в двух разных колонках, как это:

Имена                                                 Фамилий

Ned    Stark 
Tyrion   Lannister 
Daenerys   Targaryen 
Robert   Baratheon 

Поскольку я использую SQL Server CE 3.5 Издание, ЛЕВЫЙ, функции MID не работает для меня. Итак, как бы я это сделал?

+0

Вопрос "[разделение-одна колонка-на-две-столбцы-в-sql] (http://stackoverflow.com/questions/7985147/dividing-one-column-into-two-columns-in-sql) «очень похоже на этот вопрос, но спросил через час после. – norlando

ответ

2

Это должно работать.

SELECT SUBSTRING([Name], 0, CHARINDEX(' ', [Name], 0)) [FirstName], 
     SUBSTRING([Name], CHARINDEX(' ', [Name], 0) + 1, LEN([Name])) [LastName] 

EDIT:

SELECT SUBSTRING([Name], 0, CHARINDEX(' ', [Name], 0)) [FirstName], 
     SUBSTRING([Name], CHARINDEX(' ', [Name], 0) + 1, LEN([Name])) [LastName] 
FROM 
(
    SELECT 'Ned Stark' [Name] UNION 
    SELECT 'Tyrion Lannister' [Name] UNION 
    SELECT 'Daenerys Targaryen' [Name] UNION 
    SELECT 'Robert Baratheon' [Name] 
) n 

Просто замените часть после того, как из с вами таблицы и колонки [Имя] с вами колонке.

+0

Ваш запрос отсутствует в инструкции. Хотя я добавил «Из таблицы» в конце вашего запроса, это не сработало. Он ничего не сделал. – user733452

+0

Если вы запустите мою часть редактирования, вы увидите результаты вашего вопроса. – norlando

+0

У нас есть как минимум сто имен в нашей колонке не только четыре. Итак, из инструкции редактируемой части для меня проблематично. Что мне делать? – user733452

1

Вы можете комбинировать функции CHARINDEX и SUBSTRING. Оба они поддерживаются в CE согласно msdn.

Пример:

SELECT 
    SUBSTRING(a, 0, CHARINDEX(' ', a)), 
    SUBSTRING(a, CHARINDEX(' ',a) + 1, LEN(a)) 
FROM 
    (SELECT 'Random Joe' as a) t 
+0

Когда я запускаю ваш запрос, я получил следующую ошибку: произошла ошибка, анализирующая запрос. [Номер строки токена, смещение линии токена, токен по ошибке ,,] – user733452

Смежные вопросы