如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中

Posted

技术标签:

【中文标题】如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中【英文标题】:How to compare column of two table and insert a value into new table based on comparison in stored procedure in SQL Server 【发布时间】:2015-02-24 17:30:12 【问题描述】:

我想创建一个过程,它应该检查两个表之间的列并根据比较将值插入另一个表。

表 1:

create table table1
(
ID int not null primary key,
)

表 2:

Create table table2
(
ItemID int not null primary key,
ID int FOREIGN KEY REFERENCES Orders(OrderID) ,
Descp Text
)

表 3:

create table table3
(
ID int,
ItemCheck char
)

表 3 的 ID 列的值应与表 1 的 ID 列相同,并且 如果表 1 表的 ID 列存在于表 2 中,则表 3 的值 ItemCheck 列应为“真”或“假”。 请给我一些想法,如果您有任何疑问,请告诉我。提前致谢。

【问题讨论】:

【参考方案1】:

听起来你想要这样的东西?

TRUNCATE table3;
INSERT INTO table3 (ID, ItemCheck)
  SELECT ID, 
         CASE WHEN EXISTS (SELECT 1 FROM table2 t2 WHERE ID = t.ID)
              THEN 'T' 
              ELSE 'F' 
         END
    FROM table1 t

【讨论】:

它有效。非常感谢【参考方案2】:
Declare @col1 varchar(10)
Declare @col2 varchar(10)

SET @col1 = Select column1 from table1 where id =1
SET @col1 = Select column1 from table1 where id =2

IF(@col1 == @col2)
BEGIN 
  //  insert statement goes here
END

【讨论】:

以上是关于如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中的主要内容,如果未能解决你的问题,请参考以下文章

插入第三张表的 SQL 合并

比较excel文件中多张工作表的列标题并将其提取到R

如何在 QT C++ 中从表的列中获取 SQL 中的所有值

将表的列复制到另一个表SQL

数据库表的管理(使用T-SQL语句)

VBNET如何在两个表的不同行中插入多个值