在SQL Server CE中将一列拆分为两列

时间:2011-11-02 16:49:30

标签: c# sql visual-studio-2010 split sql-server-ce

我正在使用C#进行VS2010 的项目。

我有一个本地数据库(.sdf文件)。以下是我的数据库的示例内容:

列1

Ned Stark
Tyrion Lannister
Daenerys Targaryen
Robert Baratheon

我要做的是将名称和姓氏拆分为两个不同的列,如下所示:

姓名姓氏

Ned               Stark
Tyrion            Lannister
Daenerys          Targaryen
Robert            Baratheon

由于我使用 SQL Server CE 3.5版,因此LEFT,MID功能对我无效。那么,我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

这应该有用。

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

编辑:

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 :(得分:1)

您可以组合CHARINDEX和SUBSTRING功能。根据{{​​3}},CE都支持它们。

示例:

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