簡體   English   中英

需要在一列中查找值,然后從另一列返回值

[英]Need to find value in one column and then return value from another column

這是我的問題。 我有一個Microsoft SQL服務器數據庫表,其中包含一堆列。 (我無法更改此表的數據結構!)

  • 此表中的21列代表“實際”尺寸
  • 此表中的21列代表“相對”尺寸
  • “實際大小”列通過列號對應“相對大小”列。

根據輸入的'Actual'值,我需要返回相關的'Relative'值。

我已經設法通過以下case語句完成了我需要的部分工作,但case語句最多有10個條件,因此無法覆蓋表中的所有21列。 解決這個問題的最佳方法是什么? 我的目標是將它放入一個select語句,以便我可以選擇相對大小並在我的查詢中返回它。

我用case語句做的例子:

SELECT
    T.AValue
    CASE WHEN (T.ActualColumn1 = T.AValue) then T.RelativeColumn1 ELSE
        CASE WHEN (T.ActualColumn2 = T.AValue) THEN T.RelativeColumn2 ELSE
            CASE WHEN (T.ActualColumn3 = T.AValue) THEN T.RelativeColumn3 ELSE
                CASE WHEN (T.ActualColumn4 = T.AValue) THEN T.RelativeColumn4 ELSE
                    NULL
                END 
            END 
        END 
    END AS RValue
FROM T

謝謝您的幫助!

如果將case語句更改為已搜索的案例,則可以包含10個以上的子句。

select T.AValue,
       case T.AValue
         when T.ActualColumn1 then T.RelativeColumn1
         when T.ActualColumn2 then T.RelativeColumn2
         when T.ActualColumn3 then T.RelativeColumn3
         when T.ActualColumn4 then T.RelativeColumn4
       end as RValue
from T

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM