[请教]SQL Server中将一列拆分成多列的问题

berrylala berrylala 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好 我想把数据库中A图的结构变成B图的结构(“M4,M5,M6”是一字符串)
p_code p_material
P4 M4,M5,M6
P5 M1,M32,M27
……
(A图)

p_code p_material
P4 M4
P4 M5
P4 M6
P5 M1
……
(B图)

我是这么想的,先将A图拆分成C图,然后再行列转换
p_code p_material1 p_material2 p_material3
P4 M4 M5 M6
P5 M1 M32 M27
……
(C图)

在将A图拆分成C图时,具体做法是先将"M4,M5,M6"拆分为形如"M4;M5,M6"两列;然后再将"M5,M6"拆分成"M5;M6"两列;然后更新SQL Server的表。
将"M4,M5,M6"拆分为形如"M4;M5,M6"两列的SQL 语句如下(先在表orders中新建2列p_material1和p_material2):
use test
update orders
set p_material1=(select substring(p_material,1, (charindex(',',p_material)-1)) from orders )
set p_material2=(select substring(p_material, (charindex(',',p_material)+1),len(p_material)) from orders)
go
结果报“=”附近有语法错误,不知道怎样修改才正确。
此外,我想从A图变成B图,有没有比较简单一些的方法,以C图作为桥梁貌似比较复杂。
请大家帮忙看看 非常感谢!
...全文

相关推荐

SQL 将一列拆分成多列的三种方法

数据表中有一列数据,如图所示: 现在需要将该列数据分成三列。 SQL 代码如下所示: 第一种 select max(case when F1%3=1 then F1 else 0 end) a, max(case when F1%3=2 then F1 else 0 end) b, max(case when F1%3=0 then F1 else 0 end) c from HLR151 group by (F1-1)/3 效果 第二种 select c1=a.F1,c2=b.F1,c3=c.F1 from HLR151 a left join HLR151 b on b.F1=a.

weixin_38555229

SQL Server将一列的多行内容拼接成一行的实现方法

下面大家先看下示例代码: 示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便的方法吧,现在大体总结一下,供大家共同

zcharzon

sql server 2008 将一列值转换成一个字符串

sql server 2008 将一列值转换成一个字符串

qwj5375

SQL Server 将某一列的值拼接成字符串.docx

SQL Server 将某一列的值拼接成字符串示例

2021专业CNC数据采集

SQL删除多列语句的写法

主要介绍了SQL删除多列语句的写法,非常简单,具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38745925
评论 6
收藏 已收藏
分享
返回顶部
berrylala
MS-SQL Server 34,876 成员 254,635 内容