SQL中如何把一个字段的值拆分成另外两个字段的值?

HQSummer 2016-10-09 04:48:59
SQL中如何把一个字段的值拆分成另外两个字段的值?现在有一张表,如下
商品名称
耐克 DS001
安踏 AT002
阿迪达斯 AD009
变成 下面这种表
品牌 商品代码
耐克 DS001
安踏 AT002
阿迪达斯 AD009
...全文
7571 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
躁动有内涵 2017-01-12
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
看你的格式,分隔符为两个空格 e.g.
SELECT  LEFT(商品名称, CHARINDEX('  ', 商品名称 + '  ') - 1) AS 品牌 ,
        STUFF(商品名称, 1, CHARINDEX('  ', 商品名称 + '  ') + 1, '') AS 商品代码
FROM    ( VALUES ( '耐克  DS001'), ( '安踏  AT002'), ( '阿迪达斯  AD009') ) t ( 商品名称 ); 
/*
品牌	商品代码
耐克	DS001
安踏	AT002
阿迪达斯	AD009
*/
这种 该怎么拆 aa 字段值 K500+200 拆成 bb=500 cc=200 aa 字段值 K500+200-K500+400 拆成 bb=500 cc=200 dd=500 ee=400 ?
足球不是方的 2016-10-09
  • 打赏
  • 举报
回复
select '耐克 DS001' as col1 into #a select left(col1,(select charindex(' ',col1))), substring(col1,(select charindex(' ',col1)),(select len(col1))) from #a 这个意思?
卖水果的net 2016-10-09
  • 打赏
  • 举报
回复
引用 6 楼 roy_88 的回复:
看你的格式,分隔符为两个空格 e.g.
SELECT  LEFT(商品名称, CHARINDEX('  ', 商品名称 + '  ') - 1) AS 品牌 ,
        STUFF(商品名称, 1, CHARINDEX('  ', 商品名称 + '  ') + 1, '') AS 商品代码
FROM    ( VALUES ( '耐克  DS001'), ( '安踏  AT002'), ( '阿迪达斯  AD009') ) t ( 商品名称 ); 
/*
品牌	商品代码
耐克	DS001
安踏	AT002
阿迪达斯	AD009
*/
select * from (values()) , 这种语法, 真是头一次见,刚看了下官文,长了见识了。 大版 V5
中国风 2016-10-09
  • 打赏
  • 举报
回复
看你的格式,分隔符为两个空格 e.g.
SELECT  LEFT(商品名称, CHARINDEX('  ', 商品名称 + '  ') - 1) AS 品牌 ,
        STUFF(商品名称, 1, CHARINDEX('  ', 商品名称 + '  ') + 1, '') AS 商品代码
FROM    ( VALUES ( '耐克  DS001'), ( '安踏  AT002'), ( '阿迪达斯  AD009') ) t ( 商品名称 ); 
/*
品牌	商品代码
耐克	DS001
安踏	AT002
阿迪达斯	AD009
*/
卖水果的net 2016-10-09
  • 打赏
  • 举报
回复

create table test(pp varchar(30))
go
insert into test values('耐克 DS001'),('安踏 AT002'),('阿迪达斯 AD009')
go
select 
substring(pp,1,charindex(' ',pp))pp1, 
substring(pp,charindex(' ',pp) +1,30) pp2
from test 
go
drop table test 
go

(3 行受影响)
pp1                            pp2
------------------------------ ------------------------------
耐克                             DS001
安踏                             AT002
阿迪达斯                           AD009

(3 行受影响)


HQSummer 2016-10-09
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
真正的商品代码,都是字母或数字开头吗?
品牌和商品代码在商品名称中都是以空格隔开的 我就是想以空格来区分品牌和商品代码
卖水果的net 2016-10-09
  • 打赏
  • 举报
回复
引用 2 楼 HQSummer 的回复:
[quote=引用 1 楼 wmxcn2000 的回复:] 真正的商品代码,都是字母或数字开头吗?
我只是打个比方 [/quote] 得有具体的规律才可以拆的;或者说,有一张品牌的列表,也可以的;
HQSummer 2016-10-09
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
真正的商品代码,都是字母或数字开头吗?
我只是打个比方
卖水果的net 2016-10-09
  • 打赏
  • 举报
回复
真正的商品代码,都是字母或数字开头吗?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧