67705


MySQL で、SELECT と ORDER BY に同じ記述を書く際、ASを付与することで 重複記述を避けることは出来ますか？  
また、もし重複記述を避けることが出来る場合、ASの影響方向は下記何れとなりますか？

  * SELECT で設定した AS を ORDER BY で使用可能 
  * ORDER BY で設定した AS を SELECT で使用可能 

* * *

1対多のコードがある時、

[code]

    SELECT
      a.id,
      a.title,
      MAX(b.hoge_datetime),
      MIN(b.hoge_datetime)
    FROM a
    LEFT JOIN b ON a.id = b.a_id
    GROUP BY a.id
    ;
    
[/code]

* * *

2機能追加したい

  * 下記4カラムの最大値も取得
  * 下記4カラムの最大値降順ソート

・aテーブル`x_time`カラム(必ず存在)  
・aテーブル`z_time`カラム(NULL可能性あり)  
・bテーブル`x_time`カラム(NULL可能性あり)  
・bテーブル`z_time`カラム(NULL可能性あり)

* * *

下記コードを試してみてエラーは発生しなかったのですが、SELECT にも同じコードを書くのもどうかと思い、ASで何とかできないかと思ったので質問しました

[code]

    ORDER BY GREATEST(
      a.`x_time`,
      IFNULL(a.`z_time`, a.`x_time`),
      IFNULL(MAX(b.`x_time`), a.`x_time`),
      IFNULL(MAX(b.`z_time`), a.`x_time`),
    ) DESC
    ;
    
[/code]


CC BY-SA 4.0
2020-06-16T01:40:59.253
67701
2020-06-16T03:18:06.787
7886
question
mysql
SELECT の AS と ORDER BY の AS について


SELECTでエイリアスを指定して、別の部分で利用できます。

<https://dev.mysql.com/doc/refman/5.6/ja/select.html>

> AS alias_name を使用して、select_expr にエイリアスを指定できます。エイリアスは式のカラム名として使用され、GROUP
> BY、ORDER BY、または HAVING句で使用できます

SELECTでエイリアスをつけて`ORDER BY`で使用してください。


CC BY-SA 4.0
2020-06-16T03:18:06.787
67705
2020-06-16T03:18:06.787
22665
67701
answer