どちらが選択されているかを知るには、次のようにします。
SELECT IF(start_city_name='somecity', 'Departure time', 'Arrival time'),
IF(start_city_name='somecity', departure_time, arrival_time)
FROM time_schedule;
実際には列名として使用することはできません。条件が真である行と条件が偽である行が1つある場合、列名はどうなりますか?
ただし、それらを2つの列に分割することに満足している場合:
SELECT IF(start_city_name='somecity', NULL, arrival_time) AS 'Arrival time',
IF(start_city_name='somecity', departure_time, NULL) AS 'Departure time'
FROM time_schedule;
これは、単に次のように言うのと非常によく似ています。
SELECT arrival_time, departure_time
FROM time_schedule;
arrival_time
を除いて NULL
になります 条件が真の場合、およびdeparture_time
NULL
になります 条件が偽の場合。