Разделение одного столбца на два столбца в SQL Server CE - PullRequest
0 голосов
/ 02 ноября 2011

Я делаю проект с VS2010 , используя C #.

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

Column1

Ned Stark
Tyrion Lannister
Daenerys Targaryen
Robert Baratheon

Я пытаюсь разделить имена и фамилии на два разных столбца, например:

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

Ned               Stark
Tyrion            Lannister
Daenerys          Targaryen
Robert            Baratheon

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

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

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

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

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

1 голос
/ 02 ноября 2011

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

Пример:

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