0

後で同じ選択で「AS uniqueName」などの変数を使用するにはどうすればよいですか?

簡単なことをするためだけに結果セットを反復処理する必要がないように、select 内にいくつかの単純なロジックを入れようとしています。

SELECT
CASE emp_crns.ansi_class
    when -1 then 'N'
    when 150 then 0
    when 300 then 1
    when 600 then 2
    when 900 then 3
    when 1500 then 4
    when 2500 then 6
    when 3500 then 8
    else 'X'
end AS crnAnsiClassCode,
CONCAT('REV. ', crnAnsiClassCode, ' ', emp_models.name) AS modelName
FROM
emp_models
JOIN
emp_revisions ON emp_revisions.id=emp_models.revision_id
JOIN
emp_crns ON emp_crns.id=emp_revisions.crn_id
4

1 に答える 1

2

サブクエリを使用して、指定したエイリアスにアクセスできます。

SELECT empcrns.crnAnsiClassCode,
    CONCAT('REV. ', empcrns.crnAnsiClassCode, ' ', emp_models.name) AS modelName
FROM emp_models
JOIN emp_revisions 
    ON emp_revisions.id=emp_models.revision_id
JOIN
(
    SELECT id, 
        CASE ansi_class
            when -1 then 'N'
            when 150 then 0
            when 300 then 1
            when 600 then 2
            when 900 then 3
            when 1500 then 4
            when 2500 then 6
            when 3500 then 8
            else 'X'
        end AS crnAnsiClassCode
    FROM emp_crns
) empcrns
    ON empcrns.id=emp_revisions.crn_id
于 2012-09-25T21:47:31.857 に答える