[英]if condition in mysql select statement
请帮忙解决以下问题。 我的表叫做time_schedule。
我的要求是如果start_city_name ='somecity'那么我需要选择departure_time
否则我需要选择arrival_time。 在这里,我想要选择哪一个。 例如:
SELECT IF(start_city_name='somecity',departure_time,arrival_time)
FROM time_schedule;
这里如果条件匹配则选择departure_time。 然后我需要选择它作为departure_time。
否则,如果条件失败,则选择arrival_time,然后我需要选择结果作为arrival_time。 我正在使用MySQL。 提前致谢。
要知道选择了哪一个,您可以执行以下操作:
SELECT IF(start_city_name='somecity', 'Departure time', 'Arrival time'),
IF(start_city_name='somecity', departure_time, arrival_time)
FROM time_schedule;
你不能真正把它作为列名,如果有一行条件为真而一条条件为假,那么列名应该是什么?
但是,如果您乐意将它们分成两列:
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
,条件为false时, departure_time
将为NULL
。
使用像这样的CASE
结构:
SELECT CASE start_city
WHEN 'somecity' THEN departure_time
ELSE arrival_time
END AS column_alias
FROM time_schedule;
Google for CASE
声明了解更多详情。 这有很多资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.