theman23 2023-05-06 10:48 采纳率: 50%
浏览 20

关于#sqlserver#的问题,如何解决?

我是sqlserver数据库
我有2个表,一个车间表

id车间编号
11
22

一个物料表

id物料编号
1a
2b

这两个表没有关联

我有个需求,想对这两个表合并,做一个唯一编号的字段

id车间编号物料编号唯一编号
11a1a
21b1b
32a2a
42b2b

我不想给2个基础表加关联字段
我想问,用视图能不能做到?
如果有其他方法应该怎么做?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-06 14:15
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/209242
    • 以下回答由chatgpt基于相关博客总结生成:

      可以使用视图或者使用UNION操作符将两个表合并为一个新表并添加唯一编号字段。下面是具体步骤:

      1. 创建新表并添加唯一编号字段:

      可以使用以下语句创建新表并添加唯一编号字段:

      CREATE TABLE new_table (
        id INT PRIMARY KEY AUTO_INCREMENT,
        workshop_code VARCHAR(10),
        material_code VARCHAR(10),
        unique_code VARCHAR(20)
      );
      

      这条语句创建了一个名为"new_table"的表,有四个字段:id为自增主键,workshop_code和material_code为原表中的车间编号和物料编号,unique_code为唯一编号字段。

      1. 向新表中插入数据:

      可以使用以下语句向新表中插入数据:

      INSERT INTO new_table (workshop_code, material_code, unique_code)
      SELECT workshop_code, material_code, CONCAT(workshop_code, '_', material_code, '_', id) AS unique_code
      FROM workshop_table
      UNION ALL
      SELECT workshop_code, material_code, CONCAT(workshop_code, '_', material_code, '_', id) AS unique_code
      FROM material_table;
      

      这条语句首先使用UNION ALL操作符将两个表合并,然后为每一行添加唯一编号。unique_code字段通过CONCAT函数组合了车间编号、物料编号和自增主键,并将它们用下划线连接起来,以创建唯一编号。最后,所有数据都被插入到了新表中。

      1. 创建视图(可选):

      如果不想在数据库中创建一个新表,可以考虑使用视图来实现同样的效果。以下是创建视图的步骤:

      CREATE VIEW merged_table AS
      SELECT workshop_code, material_code, CONCAT(workshop_code, '_', material_code, '_', id) AS unique_code
      FROM workshop_table
      UNION ALL
      SELECT workshop_code, material_code, CONCAT(workshop_code, '_', material_code, '_', id) AS unique_code
      FROM material_table;
      

      这条语句创建了一个名为"merged_table"的视图,它将两个表合并并为每一行生成唯一编号。可以像使用表一样使用这个视图,但需要注意的是,视图只是一个虚拟的表,不会存储任何数据。每次使用视图时都会动态计算数据。

      以上就是将两个没有关联的表合并为一个新的表并添加唯一编号字段的具体步骤。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月6日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错