问题
I am doing a project with VS2010 using C#.
I have a local database (.sdf file). Here is the example content of my database:
Column1
Ned Stark
Tyrion Lannister
Daenerys Targaryen
Robert Baratheon
What I am trying to do is split names and surnames into two different columns, like this:
Names Surnames
Ned Stark
Tyrion Lannister
Daenerys Targaryen
Robert Baratheon
Since I'm using SQL Server CE 3.5 Edition, LEFT, MID functions didn't work for me. So, how would I do that?
回答1:
This should work.
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
Just replace the part after from with you table and the column [Name] with you column.
回答2:
You can combine CHARINDEX and SUBSTRING functions. Both of them are supported in CE according to msdn.
Example:
SELECT
SUBSTRING(a, 0, CHARINDEX(' ', a)),
SUBSTRING(a, CHARINDEX(' ',a) + 1, LEN(a))
FROM
(SELECT 'Random Joe' as a) t
来源:https://stackoverflow.com/questions/7984151/splitting-one-column-into-two-columns-in-sql-server-ce