0
我使用下面的查詢:使用SQL-CASE只返回第一案值
SELECT Policy_type_ID,Policy_Value Value,CASE Policy_Value WHEN max(Policy_Value) THEN 'Highest' WHEN min(Policy_Value) THEN 'Lowest' END AS Range
FROM Policy_Types
GROUP BY Policy_type_ID,Policy_Value
HAVING ((Policy_Value IN (SELECT max(Policy_Value)
FROM Policy_Types)) OR (Policy_Value IN(SELECT min(Policy_Value)
FROM Policy_Types)));
但結果只有一個值「最高」列「Range'.Its僅關於第一種情況,無論它是什麼,並忽略其餘的。
Policy_type_ID Value Range
501180 990000 Highest
690002 10 Highest
690006 10 Highest
690007 10 Highest
我不知道我哪裏出錯了。它只是CASE聲明是問題....任何幫助?
這是沒有必要使用'MAX(Policy_Value)''時爲Policy_Value'你通過分組的一列,因爲它的計算最大爲每個組。在每個組內,該值始終等於最大值。 – Barmar
您是否試圖將此策略值與整個表中的最大值進行比較? – Barmar