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 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的数据合并(乘积方式)相关推荐
- 将一个基于磁盘的表迁移到SQL Server中的一个内存优化的表
本文是微软的译文,对应的原文是:https://www.red-gate.com/simple-talk/sql/database-administration/migrating-disk-base ...
- 在SQL SERVER 中如何备份和恢复单个表?
2019独角兽企业重金招聘Python工程师标准>>> 如果只想备份或恢复单个表而不想备份或恢复整个数据库的话,往往有以下方法: 使用命令bcp: 导出到filename文件中: M ...
- cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项
cte公用表表达式 In this article, the latest in our series on Common table expressions, we'll review CTE SQ ...
- SQL Server中的表变量
In this article, we will explore the table variable in SQL Server with various examples and we will ...
- cte公用表表达式_在SQL Server中使用CTE进行插入和更新(公用表表达式)
cte公用表表达式 In CTEs in SQL Server; Querying Common Table Expressions the first article of this series, ...
- SQL Server中的锁的简单学习
原文:SQL Server中的锁的简单学习 简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但 ...
- cte公用表表达式_SQL Server中的CTE; 使用公用表表达式解决重新编制标识符列的问题
cte公用表表达式 Since we know that the SQL CTE (common table expression) offers us a tool to group and ord ...
- cte公用表表达式_SQL Server中的CTE; 查询公用表表达式
cte公用表表达式 Common table expressions (CTEs) in SQL Server provide us with a tool that allows us to des ...
- SQL Server中的数据层应用程序简介
In this article, I'm going to introduce the data-tier applications in SQL Server. As the official do ...
- sql 会话_在特定会话中禁用SQL Server中的触发器
sql 会话 This article will focus on the various ways to disable triggers in SQL Server so they won't i ...
最新文章
- JS中URL编码参数(UrlEncode)
- flutter能开发游戏吗_游戏开发者都擅长“打自己的游戏”吗?
- spring security只要熟悉每个filter的作用和顺序
- 关于controller的总结 2021-04-22
- UVALive - 6436
- 【CodeVS】p1174 靶形数独
- 二、Linux常用命令——文件处理命令
- 【图像处理基础】基于matlab GUI图像局部放大【含Matlab源码 1016期】
- Java 后端MD5加密
- 基于EEMD和樽海鞘算法优化SVM的滚动轴承故障诊断python
- 【python】只保留字符串中的英文字母
- Android 模拟器的本地ip
- Python数据可视化:网易云音乐歌单
- ☆☆如何学习MATLAB☆☆
- android xml绘制图标,android – 如何为图标制作XML文件
- 纯c++读取与显示BMP图片
- IT界 PK 投资界,那些令人心驰神往的公司食堂
- 副业怎么样通过手游达到月入过万
- IT讲师韩顺平:创业不易,尚硅谷延续教育初心
- 软件著作权申请中的分类号填写
热门文章
- java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树
- oracle事务处理编号,oracle事务处理
- laravel中的where和orwhere的源码分析
- TCP的三次握手、四次挥手,干货满满!
- java读取properties文件,深度集成!
- Python程序的函数和代码复用
- excel上传到linux乱码,上载excel文件名字乱码有关问题处理
- cpu线程_进程/线程上下文切换会用掉你多少CPU?
- 你不知道的三种在for循环中使用setTimeout的方法
- Mysql while 嵌套 cursor 游标, 数据迁移