mysql> SELECT
-> IF(status='EndSP',reportId,'') as 'reportId_EndSP'
-> FROM T_Name LIMIT 10;
+--------------+
| reportId_EndSP |
+--------------+
| |
| |
| 270241 |
| |
| 270242 |
| |
| |
| 270244 |
| |
| |
+--------------+
10 rows in set (0.00 sec)
But i need to return only the row where status = 'EndSP'
else 句を実行する必要はありません。
私は単に書くことでそれを達成することができます
SELECT reportId FROM T_Name where status='EndSP';
しかし、ifまたはcaseを使用してそれを行う必要があります。
編集/更新
私の実際のクエリは次のようになります
SELECT
-> IF(status='EndSP',reportId,'') as 'reportId_EndSP',
-> IF(status='EndSP',createdTS,'') as 'createdTS_EndSP',
-> IF(status='BeginSP',reportId,'') as 'reportId_BeginSP',
-> IF(status='BeginSP',createdTS,'') as 'createdTS_BeginSP'
-> FROM T_Name HAVING reportId_EndSP!='' AND reportId_BeginSP!='' LIMIT 10;