0

「ケース値」に基づいて選択を作成することは可能ですか。以下の例では、Category. 値を取得したいとしましょうLowWHERE Category = 'Low'Categoryが存在しないため、使用するとエラーが発生します。

WHERE Category = 'Low'に置き換えることで選択範囲を作成できることはわかっていWhere digit > 0 AND digit <=40ます。しかし、二重表現から外れているため、これは悪い方法のように思えます。

SELECT digits,

    CASE 
        When digit > 0 AND digit <=40 THEN 'Low'
        When digit > 40 AND digit <=75 THEN 'Average'
        When digit > 75  THEN 'High'
    END AS Category

FROM digits_table

WHERE Category  = 'Low'
4

3 に答える 3

1

または(オールドスクール):

SELECT * FROM (
    SELECT digits,
    CASE 
        When digit > 0 AND digit <=40 THEN 'Low'
        When digit > 40 AND digit <=75 THEN 'Average'
        When digit > 75  THEN 'High'
    END AS Category
    FROM digits_table
) AS tmp WHERE Category = 'Low'
于 2013-10-21T07:43:03.327 に答える