Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 有条件地从一个表或另一个表中选择_Sql_Sql Server 2008_If Statement_Case - Fatal编程技术网

Sql 有条件地从一个表或另一个表中选择

Sql 有条件地从一个表或另一个表中选择,sql,sql-server-2008,if-statement,case,Sql,Sql Server 2008,If Statement,Case,我有两张桌子 TableA Column1, Column2,Column3, Column4 TableB Column1, Column2,Column3, Column4 要修改的查询: Select Column2,Column3, Column4 From TableA 如果TableB中存在TableA.Column2的值,我将如何修改上述查询以从TableB中选择Column3?它还必须是表B.Column1的最大值 TableA Column1 Column2 Column3

我有两张桌子

TableA Column1, Column2,Column3, Column4
TableB Column1, Column2,Column3, Column4
要修改的查询:

Select Column2,Column3, Column4
From TableA
如果TableB中存在TableA.Column2的值,我将如何修改上述查询以从TableB中选择Column3?它还必须是表B.Column1的最大值

TableA
Column1 Column2 Column3 Column4
1        A      zebra     apple
2        C      lion      orange
3        R      giraffe   banana

TableB
Column1 Column2 Column3 Column4
1       Q       snail     rock
2       C       frog      stone
3       Z       giraffe   tree
4       C       walrus    limb

Result
Column2          Column3   Column4
A                zebra     apple
C                walrus    orange
R                giraffe   banana
可能是这样的:

   Select TableA.Column2,Case When Exists(Select TableB.Column3 From Table3 
   Where        Table2.Column = TableB.Column2 ) Then Select Table2.Column3 Where   [Table2.Column1 is  max value], Column4
   From TableA

如下所示:

select
    a.column2
    , case when b.column2 is not null then max(b.column3) else a.column3 end
    , a.column4
from
    tableA a
    left join tableB b
        on a.column2 = b.column2
group by
    a.column2
    , a.column3
    , a.column4
    , b.column2

如果这是一个家庭作业,如问题所示,请学习代码以了解其原因和工作方式。

案例构造和连接表的组合应该可以解决这个问题。看来你已经知道案例结构了。不,这不是家庭作业。它是具有许多联接的更大查询的一部分。我只是想专注于其中的一部分。我理解它,但我必须看看是否可以将其集成到更大的查询中。小组讨论可能很困难。谢谢你的帮助。啊,那样的话,不客气。谢谢你简化了这个问题我还在努力。到目前为止,我只得到一排。那是没有组员的。这可能与长查询的另一部分有关。小组讨论是否有必要?你能解释一下原因吗?谢谢你。除了一件事,我让它工作了。我不需要马克斯(b.3)。我需要b.column3,其中max(b.column1)。