![](/img/trans.png)
[英]Need a SQL select statement to return rows that have the same id in one column and distinct value in another column
[英]Need to find value in one column and then return value from another column
這是我的問題。 我有一個Microsoft SQL服務器數據庫表,其中包含一堆列。 (我無法更改此表的數據結構!)
根據輸入的'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.