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 GoodsCate
select * from GoodsLevel --4、简单的笛卡尔积使用--
select * from GoodsCate A
cross 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 A
cross join
GoodsLevel B

最后结果

ps:

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

转载于:https://www.cnblogs.com/xielong/p/8707581.html

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

  1. 将一个基于磁盘的表迁移到SQL Server中的一个内存优化的表

    本文是微软的译文,对应的原文是:https://www.red-gate.com/simple-talk/sql/database-administration/migrating-disk-base ...

  2. 在SQL SERVER 中如何备份和恢复单个表?

    2019独角兽企业重金招聘Python工程师标准>>> 如果只想备份或恢复单个表而不想备份或恢复整个数据库的话,往往有以下方法: 使用命令bcp: 导出到filename文件中: M ...

  3. cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项

    cte公用表表达式 In this article, the latest in our series on Common table expressions, we'll review CTE SQ ...

  4. SQL Server中的表变量

    In this article, we will explore the table variable in SQL Server with various examples and we will ...

  5. cte公用表表达式_在SQL Server中使用CTE进行插入和更新(公用表表达式)

    cte公用表表达式 In CTEs in SQL Server; Querying Common Table Expressions the first article of this series, ...

  6. SQL Server中的锁的简单学习

    原文:SQL Server中的锁的简单学习 简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但 ...

  7. cte公用表表达式_SQL Server中的CTE; 使用公用表表达式解决重新编制标识符列的问题

    cte公用表表达式 Since we know that the SQL CTE (common table expression) offers us a tool to group and ord ...

  8. cte公用表表达式_SQL Server中的CTE; 查询公用表表达式

    cte公用表表达式 Common table expressions (CTEs) in SQL Server provide us with a tool that allows us to des ...

  9. SQL Server中的数据层应用程序简介

    In this article, I'm going to introduce the data-tier applications in SQL Server. As the official do ...

  10. sql 会话_在特定会话中禁用SQL Server中的触发器

    sql 会话 This article will focus on the various ways to disable triggers in SQL Server so they won't i ...

最新文章

  1. JS中URL编码参数(UrlEncode)
  2. flutter能开发游戏吗_游戏开发者都擅长“打自己的游戏”吗?
  3. spring security只要熟悉每个filter的作用和顺序
  4. 关于controller的总结 2021-04-22
  5. UVALive - 6436
  6. 【CodeVS】p1174 靶形数独
  7. 二、Linux常用命令——文件处理命令
  8. 【图像处理基础】基于matlab GUI图像局部放大【含Matlab源码 1016期】
  9. Java 后端MD5加密
  10. 基于EEMD和樽海鞘算法优化SVM的滚动轴承故障诊断python
  11. 【python】只保留字符串中的英文字母
  12. Android 模拟器的本地ip
  13. Python数据可视化:网易云音乐歌单
  14. ☆☆如何学习MATLAB☆☆
  15. android xml绘制图标,android – 如何为图标制作XML文件
  16. 纯c++读取与显示BMP图片
  17. IT界 PK 投资界,那些令人心驰神往的公司食堂
  18. 副业怎么样通过手游达到月入过万
  19. IT讲师韩顺平:创业不易,尚硅谷延续教育初心
  20. 软件著作权申请中的分类号填写

热门文章

  1. java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树
  2. oracle事务处理编号,oracle事务处理
  3. laravel中的where和orwhere的源码分析
  4. TCP的三次握手、四次挥手,干货满满!
  5. java读取properties文件,深度集成!
  6. Python程序的函数和代码复用
  7. excel上传到linux乱码,上载excel文件名字乱码有关问题处理
  8. cpu线程_进程/线程上下文切换会用掉你多少CPU?
  9. 你不知道的三种在for循环中使用setTimeout的方法
  10. Mysql while 嵌套 cursor 游标, 数据迁移