SQL SERVER 表与表之间 字段一对多sql语句写法
表A
A1 | A2 | A3 | A4 |
01 | 02 | 03 | 04 |
03 | 04 | 01 | 02 |
表B
B1 | B2 |
01 | 张三 |
02 | 李四 |
03 | 王五 |
04 | 赵六 |
显示结果
A1 | A2 | A3 | A4 |
张三 | 李四 | 王五 | 赵六 |
王五 | 赵六 | 张三 | 李四 |
效果图:
sql语句如下
SELECT (SELECT B2 FROM B WHERE B1=A1) AS A1, (SELECT B2 FROM B WHERE B1=A2) AS A2, (SELECT B2 FROM B WHERE B1=A3) AS A3, (SELECT B2 FROM B WHERE B1=A4) AS A4 FROM A
这样就ok了
相关推荐
-
SQL SERVER 表与表之间 字段一对多sql语句写法
表A A1 A2 A3 A4 01 02 03 04 03 04 01 02 表B B1 B2 01 张三 02 李四 03 王五 04 赵六 显示结果 A1 A2 A3 A4 张三 李四 王五 赵六 王五 赵六 张三 李四 效果图: sql语句如下 SELECT (SELECT B2 FROM B WHERE B1=A1) AS A1, (SELECT B2 FROM B WHERE B1=A2) AS A2, (SELECT B2 FROM B WHERE B1=A3) AS A3, (SE
-
Sql Server中判断表、列不存在则创建的方法
一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法 IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小
-
SQL server 2005的表分区
下面来说下,在SQL SERVER 2005的表分区里,如何对已经存在的有数据的表进行分区,其实道理和之前在http://www.cnblogs.com/jackyrong/archive/2006/11/13/559354.html说到一样,只不过交换下顺序而已,下面依然用例子说明: 依然在c盘的data2目录下建立4个文件夹,用来做4个文件组,然后建立数据库 use masterIF EXISTS (SELECT name FROM sys.databases WHERE name =
-
复制数据库表中两个字段数据的SQL语句
复制数据库表中两个字段数据的SQL语句 今天为表新添加一个字段,但又想与表中的另一个字段值相同,由于数据过多想通过sql语句实现,经测试下面的这句话确实很好用. 复制代码 代码如下: update jb51_temp set B=A jb51_temp 代表表明 A是有数值的字段,B是新添加的字段 ,记住空值表放到前面,如果set a=b,那么你的数值都为空了,就麻烦了,建议操作前备份数据库. 如何将一个字段里的值复制添加到另一个字段中 比如,有二个字段A和B,A字段是值是"我",B字
-
SQL Server 2012 多表连接查询功能实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 交叉连接产生笛卡尔值 (X*Y) SELECT * FROM Student cross Join dbo.ClassInfo --另外一种写法 SELECT * FROM Student , ClassInfo -- 内连接 (Inner 可以省略) SELECT * FROM Student JOIN dbo.ClassInfo ON dbo.Student.Class = dbo.ClassInfo.ID; -- Inner Jo
-
SQL Server 存储过程遇到“表 ''#TT'' 没有标识属性无法执行 SET 操作”错误
创建临时表,往临时表插入数据的时候报的错误. 一开始提示没有打开主键,后来打开主键就提示上述错误异常. 从网上查找资料没有找到,然后又到群里问各位大牛,一位大牛告诉我是没有设置主键. 我又仔细看看提示,恍然大悟,我就给临时设置了主键. 没有主键之前的代码: CREATE TABLE #TT( CourseId INT , UserId INT, ClassId INT ) INSERT INTO #TT ( CourseId, UserId, ClassId ) SELECT CourseId,
-
sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日期
问题: 在数据库脚本开发中,有时需要生成一堆连续数字或者日期,例如yearly report就需要连续数字做年份,例如daily report就需要生成一定时间范围内的每一天日期. 而自带的系统表master..spt_values存在一定的局限性,只是从0到2047(验证脚本:select * from master..spt_values b where b.type = 'P'),也不能直接生成连续日期. 可能大部分人会想到一个笨办法,通过while循环去逐条插入数据到临时表,每次数字加1
-
PHP操作SQL Server数据库实现表的改查与统计
目录 今天上午做表格数据的检查与修改,涉及到PHP对MS SQL Server数据表的查询.统计与修改. 平时我也不记编码和命令,到了用的时候都再查手册,这往往很耗费时间,现在写博客有个好处就是把有用的代码记录下来,下次就直接复制,修改一下就直接用了. 这样可以省去很多时间. 下面是检索三个表来更新数据,即主表有信息不全,检索两个其他的信息表进行补录. <?php require 'pspLinkConfig.php';//加载数据库 $sql = "select C24 from cwk
-
SQL Server 存储过程遇到“表 ''#TT'' 没有标识属性无法执行 SET 操作”错误
创建临时表,往临时表插入数据的时候报的错误. 一开始提示没有打开主键,后来打开主键就提示上述错误异常. 从网上查找资料没有找到,然后又到群里问各位大牛,一位大牛告诉我是没有设置主键. 我又仔细看看提示,恍然大悟,我就给临时设置了主键. 没有主键之前的代码: CREATE TABLE #TT( CourseId INT , UserId INT, ClassId INT ) INSERT INTO #TT ( CourseId, UserId, ClassId ) SELECT CourseId,
-
SQL Server解析/操作Json格式字段数据的方法实例
目录 1 json存储 2 json操作 3其他 总结 1 json存储 在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,json的函数不支持. 2 json操作 主要介绍5个函数: (1)openJson:打开Json字符串 (2)IsJson:判断一个字符串是不是合法的Json格式.是返回1,否返回0,null返回null. (3)Json_Value:从Json字符串中提取值
随机推荐
- SpringMVC与Mybatis集合实现调用存储过程、事务控制实例
- java之路径分隔符介绍
- Oracle存储过程入门学习基本语法
- Oracle 11g Release (11.1) 索引底层的数据结构
- 浅析PHP文件下载原理
- jsp导出excel并支持分sheet导出的方法
- javascript Window及document对象详细整理
- vue封装第三方插件并发布到npm的方法
- mysql found_row()使用详解
- MySQL批量SQL插入性能优化详解
- php cookie工作原理与实例详解
- 100行代码理解和分析vue2.0响应式架构
- 阿里云Linux-CentOS系统下-搭建Git服务器详解
- 原生ajax和iframe框架实现图片文件上传的两种方式
- Java web基础学习之开发环境篇(详解)
- PowerShell把文件删除到回收站的方法
- 跨数据库实现数据交流
- PHP学习之SQL语句快速入门
- IE:免去脱机浏览中的麻烦
- Java高级特性