首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将SQL中的行解析为列(分隔符-空格)

如何将SQL中的行解析为列(分隔符-空格)
EN

Stack Overflow用户
提问于 2014-09-04 06:45:56
回答 4查看 1.2K关注 0票数 0

我需要在SQL中将行(带有空格)解析为两个不同的列。这些行看起来是这样的:

FullName

约翰·梅尔

拉杰·詹宁斯

唐娜·弗拉耶

迈克尔·摩尔

因此,预期结果是:

名称

约翰

拉杰恩

唐娜

迈克尔

梅耶尔

詹宁斯

弗莱

摩尔

我如何在SQL中做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-04 07:10:30

如果您有一个要求,比如在第一个空格之前的名字应该是字符串,并且rest所有的内容都应该是“姓”,那么您可以将两个列更新为:

代码语言:javascript
运行
复制
Update T
Set T.FirstName =  Left(ltrim(rtrim(FullName)), CHARINDEX(' ',ltrim(rtrim(FullName))))
   ,T.LastName =   Right(ltrim(rtrim(FullName)),len(FullName)- CHARINDEX(' ',ltrim(rtrim(FullName))))
From Test T

看看这里的演示..。

票数 1
EN

Stack Overflow用户

发布于 2014-09-04 06:52:21

您可以使用拆分的function.This函数创建。以下是一些例子:

http://ole.michelsen.dk/blog/split-string-to-table-using-transact-sql/

SQL Server 2008中用逗号拆分函数

票数 1
EN

Stack Overflow用户

发布于 2014-09-04 06:57:25

如果只有一个空格/2名,并且您不需要满足像Vincent这样的名称,那么子字符串和charindex的组合就可以了。

代码语言:javascript
运行
复制
select substring(fullname, 1, charindex(' ', fullname)) as name,
       substring(fullname, charindex(' ', fullname)+1, len(fullname)-charindex(' ', fullname)) as surname
from tbl
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25658884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档