2011-11-02 46 views
0

我正在使用C#與VS2010 做一個項目。在SQL Server CE中將一列分爲兩列

我有一個本地數據庫(.sdf文件)。這裏是我的數據庫的例子內容:

列1

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] 

編輯:

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

您的查詢從語句中缺失。儘管我在查詢結尾添加了「From mytable」,但它不起作用。它什麼都沒做。 – user733452

+0

如果您按原樣運行我的編輯部分,則應該看到您的結果問題。 – norlando

+0

我們的專欄至少有一百個名字,不僅有四個。所以,從編輯部分的聲明對我來說是有問題的。我該怎麼辦? – user733452

1

您可以結合使用CHARINDEX和SUBSTRING功能。根據msdn,它們都支持CE。

例子:

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

當我運行您的查詢時,出現以下錯誤:解析查詢時出現錯誤。 [令牌行號,令牌行偏移,令牌出錯,] – user733452