从另一个表返回的值与第一个表的值匹配

维克多·米特

我有一个简单的问题。我有表A和B,它们都包含3个公共列(name, id, date),并且除了这3个公共列外,两个表都具有完全不同的列集。

现在,为了可视化目的,我需要将表B中的数据与表A相关联。由于我对SQL不太满意,所以我想问一问是否有可能,因为我在表A中已经有了一个简单的列,所以我知道可以计算列。但是我想做这样的事情:

表A中的新列,其中包含表A的名称,日期和ID与表B的名称,日期和ID匹配(如果没有匹配项保留为空或null)的任何行,其中包含表B的“特殊”列值。

表A:

Name | Date          | ID  | OtherData1     | OtherData2
-----+---------------+-----+----------------+-------------
John | March 2020    | SPC | Randomstuff    | randomstuff
Doe  | March 2020    | SPC | Randomstuff    | randomstuff
John | February 2020 | SPC | RandomStuff    | RandomStuff
Doe  | February 2020 | SPC | Randomstuff    | randomstuff

表B:

Name | Date          | ID  | MoreData1     | SomeData2     | Special
-----+---------------+-----+---------------+---------------+--------
John | March 2020    | SPC | Randomstuff   | randomstuff   | True
Doe  | March 2020    | SPC | Randomstuff   | randomstuff   | False
John | February 2020 | SPC | RandomStuff   | RandomStuff   | True
Doe  | February 2020 | SPC | Randomstuff   | randomstuff   | True

表A中的结果:

Name | Date          | ID  | OtherData1    |OtherData2   | SpecialImported
-----+---------------+-----+---------------+-------------+----------------
John | March 2020    | SPC | Randomstuff   | randomstuff | True
Doe  | March 2020    | SPC | Randomstuff   | randomstuff | False
John | February 2020 | SPC | RandomStuff   | RandomStuff | True
Doe  | February 2020 | SPC | Randomstuff   | randomstuff | True

在SQL Server中可以这样做吗?

乔治·梅努蒂斯

对的,这是可能的。但是,为了引用计算列中的另一个表,您必须通过创建用户定义的函数来实现。这将具有name,date,id作为输入参数,如果表B中存在这样的组合,则将输出一点。

CREATE FUNCTION [dbo].[f_check_tableB_tuple](@name nvarchar(max),@date datetime,@ID nvarchar(max))

RETURNS bit
as
begin
declare @result bit
select @result=Special from tableB where name=@name and date=@date and ID=@ID

RETURN @result

end

然后,您可以在计算列中使用此函数:

alter table tableA add SpecialImported as (dbo.f_check_tableB_tuple(name,date,ID))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL:根据另一个表中的第一个值选择表中的值

来自分类Dev

触发器根据第一个表的输入更新另一个表的值

来自分类Dev

根据第二个表的另一个值(sql)在第一个表中选择一个值

来自分类Dev

匹配另一个表中的值

来自分类Dev

Excel公式仅使用另一个工作表上的列中的第一个值

来自分类Dev

尝试从另一个表返回值

来自分类Dev

将表的两列与特定值进行比较;如果一个匹配,则返回另一个

来自分类Dev

有条件地使用辅助表中的另一个值,否则使用第一个表中的值

来自分类Dev

如果值匹配另一个表值,则更新表行

来自分类Dev

如果(插入的)第一个表中的值更大,则SQL Server更新另一个表中的值

来自分类Dev

一个表中的SQL更新值与Oracle SQL Developer中的另一个表的值匹配

来自分类Dev

如果第一列与另一个工作表上的值匹配,如何返回一行中的所有单元格

来自分类Dev

修剪第一个字符以匹配另一个值

来自分类Dev

从第一个表中排除值的并集

来自分类Dev

使用合并从2个表中返回第一个非空值

来自分类Dev

查找大于x的第一个数字并在该行中返回另一个值

来自分类Dev

PHP While 循环在另一个内部,第一个 while 不返回其他值

来自分类Dev

从与同一表中的另一个值匹配的行中选择一个值

来自分类Dev

SQL过程返回一个表的所有值,如果存在另一个表则返回是/否

来自分类Dev

将表值从一个表插入到另一个表

来自分类Dev

SQL-根据另一个表中给出的匹配值在一个表中进行选择

来自分类Dev

从表中获取第一个值,其中值与LINQ匹配或为null

来自分类Dev

从SQL表的列表中选择第一个匹配的字符串值

来自分类Dev

根据表属性创建与另一个表属性匹配的值数组

来自分类Dev

如果发生匹配,将表1的columnA值插入另一个表

来自分类Dev

MS Access:更新表中的值以匹配另一个表的 ID 字段

来自分类Dev

从一个SQL表中搜索文本并与另一个SQL表中的文本匹配,然后将值返回到新列

来自分类Dev

SQL-空值应与另一个表的非空值匹配

来自分类Dev

将表中的两个值匹配到表sql中的另一个值

Related 相关文章

  1. 1

    MySQL:根据另一个表中的第一个值选择表中的值

  2. 2

    触发器根据第一个表的输入更新另一个表的值

  3. 3

    根据第二个表的另一个值(sql)在第一个表中选择一个值

  4. 4

    匹配另一个表中的值

  5. 5

    Excel公式仅使用另一个工作表上的列中的第一个值

  6. 6

    尝试从另一个表返回值

  7. 7

    将表的两列与特定值进行比较;如果一个匹配,则返回另一个

  8. 8

    有条件地使用辅助表中的另一个值,否则使用第一个表中的值

  9. 9

    如果值匹配另一个表值,则更新表行

  10. 10

    如果(插入的)第一个表中的值更大,则SQL Server更新另一个表中的值

  11. 11

    一个表中的SQL更新值与Oracle SQL Developer中的另一个表的值匹配

  12. 12

    如果第一列与另一个工作表上的值匹配,如何返回一行中的所有单元格

  13. 13

    修剪第一个字符以匹配另一个值

  14. 14

    从第一个表中排除值的并集

  15. 15

    使用合并从2个表中返回第一个非空值

  16. 16

    查找大于x的第一个数字并在该行中返回另一个值

  17. 17

    PHP While 循环在另一个内部,第一个 while 不返回其他值

  18. 18

    从与同一表中的另一个值匹配的行中选择一个值

  19. 19

    SQL过程返回一个表的所有值,如果存在另一个表则返回是/否

  20. 20

    将表值从一个表插入到另一个表

  21. 21

    SQL-根据另一个表中给出的匹配值在一个表中进行选择

  22. 22

    从表中获取第一个值,其中值与LINQ匹配或为null

  23. 23

    从SQL表的列表中选择第一个匹配的字符串值

  24. 24

    根据表属性创建与另一个表属性匹配的值数组

  25. 25

    如果发生匹配,将表1的columnA值插入另一个表

  26. 26

    MS Access:更新表中的值以匹配另一个表的 ID 字段

  27. 27

    从一个SQL表中搜索文本并与另一个SQL表中的文本匹配,然后将值返回到新列

  28. 28

    SQL-空值应与另一个表的非空值匹配

  29. 29

    将表中的两个值匹配到表sql中的另一个值

热门标签

归档