在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,MIDfunction对我不起作用。 那么,我该怎么做?
这应该工作。
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
只需用你的表和你的列[名称]列替换之后的部分。
您可以组合CHARINDEX和SUBSTRING函数。 根据msdn ,它们都支持CE。
例:
SELECT SUBSTRING(a, 0, CHARINDEX(' ', a)), SUBSTRING(a, CHARINDEX(' ',a) + 1, LEN(a)) FROM (SELECT 'Random Joe' as a) t