1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Sql server中如何将表A和表B的数据合并(乘积方式)

Sql server中如何将表A和表B的数据合并(乘积方式)

时间:2023-04-19 02:35:58

相关推荐

Sql server中如何将表A和表B的数据合并(乘积方式)

sql server中如何将表A 和表B的数据合并成乘积方式,也就是说表A有2条数据,表B有3条数据,乘积后有6条数据,

这就要用到sql中的笛卡尔积方式了

1、什么是笛卡尔积

笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join)。所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,

表示两个表中的每一行数据任意组合。如果分步骤理解的话,内连接可以看做先对两个表进行了交叉连接后,再通过加上限制条件(SQL中通过关键字on)

剔除不符合条件的行的子集,得到的结果就是内连接了

2、实现方式

--1、创建模拟的数据表-----1.1)产品分类表create table GoodsCate(Mid int not null,Code varchar(10) not null,Name varchar(20) not null,)--1.2)产品类别表create table GoodsLevel(Mid int not null,Name varchar(10) not null)--2、添加模拟数据----2.1)添加产品分类数据insert into GoodsCate(Mid,Code,Name) values(1,'6801','电子仪器')insert into GoodsCate(Mid,Code,Name) values(2,'6802','激光仪器')insert into GoodsCate(Mid,Code,Name) values(3,'6803','扫描仪器')--2.2)添加产品类别数据insert into GoodsLevel(Mid,Name) values(1,'Ⅰ类')insert into GoodsLevel(Mid,Name) values(2,'Ⅱ类')insert into GoodsLevel(Mid,Name) values(3,'Ⅲ类')--3、查询数据表--select * from GoodsCateselect * from GoodsLevel --4、简单的笛卡尔积使用--select * from GoodsCate Across join GoodsLevel B

3、显示查询结果

那如何我要显示产品编码+产品类别(6801_1), 最后数据为这样格式,该怎么修改呢?

6801_1 6801 电子仪器 Ⅰ类

6802_1 6802 激光仪器 Ⅰ类

6803_1 6803 扫描仪器 Ⅰ类

6801_2 6801 电子仪器 Ⅱ类

6802_2 6802 激光仪器 Ⅱ类

6803_2 6803 扫描仪器 Ⅱ类

6801_3 6801 电子仪器 Ⅲ类

6802_3 6802 激光仪器 Ⅲ类

6803_3 6803 扫描仪器 Ⅲ类

--5、查询经营范围(6801_1)方法--select (CAST(A.Code as varchar(20))+'_'+CAST(B.Mid as varchar(20))) CateLevel,A.Code CateCode,A.Name CateName,B.Name LevelName from GoodsCate Across join GoodsLevel B

最后结果

ps:

详细了解笛卡尔积网址:/content/14/1229/21/7635_436727229.shtml

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。