在Oracle SQL Developer中,如何基于我的日期列是否具有2010年1月1日之前或之后的值来添加列?
例如:
Date
---------
01-JAN-10
01-JUL-15
07-JAN-07
我希望看到这样:
Date on_time
--------------------
01-JAN-10 N
01-JUL-15 Y
07-JAN-07 N
其中N
表示该值等于或晚于:2010年1月1日
和Y
表示该值在2010年1月1日之前。
这甚至可以吗?我以前没有在SQL中添加新列。
答案 0 :(得分:3)
您可以使用CASE
语句:
SELECT your_date,
CASE WHEN your_date > '2010-01-01' THEN 'Y' ELSE 'N' END "on_time"
FROM your_table
它会检查日期是否大于2010-01-01
,然后会打印Y
否则会打印N
答案 1 :(得分:2)
您可以根据日期列使用Case声明 例如:
CASE WHEN [your date column] > '01-JAN-10' THEN 'N'
ELSE 'Y'
END
当然要确保使用PL / SQL to_date函数进行字符串转换
答案 2 :(得分:1)
您可以使用虚拟列:
alter table <table_name>
add (<column_name> [<data_type>] [generated always] as (<column_expression>) [virtual]);
因此,您可以使用case
函数生成列:
CASE WHEN Date > to_date('2010-01-01', 'yyyy-mm-dd') THEN 'Y' ELSE 'N' END