在 SQL 中,可以通过使用CASE
语句和WHEN
子句将一列数据分成多列。下面是一个示例:
假设有一个名为orders
的表,其中包含order_id
和order_date
两列数据,现在要将order_date
列按照年份、月份和日期分成三列。
SELECT
order_id,
order_date,
CASE
WHEN order_date IS NOT NULL THEN YEAR(order_date)
ELSE NULL
END AS year,
CASE
WHEN order_date IS NOT NULL THEN MONTH(order_date)
ELSE NULL
END AS month,
CASE
WHEN order_date IS NOT NULL THEN DAY(order_date)
ELSE NULL
END AS day
FROM orders;
在上面的示例中,使用了三个CASE
语句分别将order_date
列按照年份、月份和日期拆分成三列year
、month
和day
。如果order_date
为空,则将对应的拆分列置为NULL
。