首页 > 解决方案 > 按条件获取的 Sql 查询

问题描述

大家好。面对一个问题,我处于昏迷状态,请帮助。你需要根据条件写一个sql查询: where code = 2 and num = 2 然后改变值,如果code = 3 则取值code = 1的记录 在此处输入图像描述

    , a as (
       select numberfn, street
         from tbl
       where code = 2
         and nume = 2)
, b as (
    select N from tbl where code = '3'
)
, actual as (
    select b.value, a.N
      from b
        join a 
        on b.N = a.N
    where b.code = '1'
    union all
    select st.value, st.N
      from rreg st
             join tbl b
                  on st.N = b.N
    )

我也尝试使用 case 来简化它,但第二个条件让我陷入了死胡同。

, actual as (
    select N
         , case when (code= 2 and num= 2)
             then value
         else .... (condition: select an entry for N where code = 1)
         end value
    from tbl
)

标签: sql-server

解决方案


您这里有两个要求,一个是更新,另一个是选择一个值。

它们分别是:

UPDATE  table
SET     value = ??
WHERE   code = 2 AND num = 2

SELECT  * FROM table
WHERE   code = 3 AND value = 1

(其中 ?? = 要将列值更改为的值。)

如果您希望两者都在一个函数中,则可以将它们移动到存储过程中。


推荐阅读