[英]splitting string from one column and extracting one part of string to another column in sql
我使用SQL Server 2008 R2。 當一個人以兩種不同的格式將數據輸入日期數據庫時,問題就開始了。
該表是:(正如您所注意到的,在“標題”列中有FName
和LName
,但它們應該分別在FName
和LName
列中。
Title FirstName LastName
-------------------------------------------------------------------
Prasident Ena Enic null null *(not ok)*
Prasident Hana Hanic *(ok)*
Prasident Jack Johnson null null *(wrong)*
所以我使用下面的代碼將Title
字符串分為3個部分( Title
, SFirstName
和SLastName
)。
ltrim(SUBSTRING (title ,CHARINDEX(' ', title)+1,
charindex(' ',title+' ',charindex(' ',title)+1)-charindex(' ',title)-1)),
ltrim(substring(title, charindex(' ',title,charindex(' ',title)+1), len(title)))
我得到了這種類型的od表。
SplittedTitle SplittedFirstName SplittedLastName FirstName LastName
-------------------------------------------------------------------------------
Prasident Ena Enic null null
Prasident Prasident Prasident Hana Hanic
Prasident Jack Johnson null null
現在我在FirstName
和LastName
null問題。 如何傳輸正確的數據(從SplittedFirstName和SplittedLastName)而不是null。 我希望任何人都明白我的問題所在。
有人知道嗎 我應該使用哪個功能以及如何使用?
我想你要更新。 您可以使用可更新的CTE進行此操作:
with toupdate as (
<your query here>
)
update toupdate
set FirstName = SplittedFirstName,
LastName = SplittedLastName
where FirstName is null and LastName is null;
您現在要做的就是在結果表上運行更新
UPDATE tablename
SET
FirstName = case when SplittedTitle <> SplittedFirstName
then SplittedFirstName end,
LastName = case when SplittedTitle <> SplittedLastName
then SplittedLastName end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.