2014-09-12 65 views
1

嗯,我已經調查了,但沒什麼似乎工作d:子串與SQL Server 2008

我有這個

Create Table Client 
    (
     Name varchar(15), 
     Last_Name varchar(30) 
    ) 

    insert into Client values ('Ralph', 'Van Beethoven') 

    Create Table Client_Det 
    (
     First_Last_Name varchar(15), 
     Second Last Name varchar(15) 
    ) 

我需要做的是從客戶端separte姓氏「凡貝多芬」和將其插入到Client_Det中,如下所示:

First Last Name: Van 

Second Last Name: Beethoven 

我該怎麼辦?

+1

「範德華爾」這個姓氏怎麼樣?雖然姓氏可以有空格,但它們不是分開的部分。 – 2014-09-12 17:32:01

回答

1

你可以這樣說:

insert into Client_Det 
select 
    case charindex(' ', Last_Name) when 0 then Last_Name else left(Last_Name,charindex(' ', Last_Name)-1) end as First_Last_Name 
, case charindex(' ', Last_Name) when 0 then null else right(Last_Name,len(Last_Name)-charindex(' ', Last_Name)) end as Second_Last_Name 
from client 

的想法是使用charindex(' ', Last_Name)以檢測Last_Name列空間。如果沒有空間,請使用整列First_Last_Name,並將NULL放入Second_Last_Name。否則,在空間處拆分,並將兩個部分放在單獨的列中。

Demo.

+0

老兄,你真棒!謝謝:D – RalphVB 2014-09-12 17:33:49