Oracle SQL - SELECT CASE WHEN 列 = ( select 语句)
Oracle SQL - SELECT CASE WHEN column = ( select statement)
我想 select "up_year" 和 SQL 大小写表达式。
如果我这样做没问题:
SELECT CASE WHEN column1 = '2020' then 'up_year' else 'past_year' else end ;
但是当尝试这样做时:不想每年都改变。
SELECT
CASE WHEN column1 = (select extract(year from sysdate) from dual)
then 'up_year'
else 'past_year' else end ;
你可以使用with子句,例如
with y as (select extract(year from sysdate) year from dual)
SELECT CASE WHEN column1 = y.year then 'up_year' else 'past_year' end from y -- and your table
A common table expression (CTE) is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement
您可以将select into一个变量分成两个步骤提取输出然后使用它
您只想匹配当前年份。那么一种选择是使用 TO_CHAR(,'yyyy')
:
SELECT CASE
WHEN column1 = TO_CHAR(sysdate,'yyyy') then
'up_year'
ELSE
'past_year'
END AS "My Year"
FROM tab
我想 select "up_year" 和 SQL 大小写表达式。
如果我这样做没问题:
SELECT CASE WHEN column1 = '2020' then 'up_year' else 'past_year' else end ;
但是当尝试这样做时:不想每年都改变。
SELECT
CASE WHEN column1 = (select extract(year from sysdate) from dual)
then 'up_year'
else 'past_year' else end ;
你可以使用with子句,例如
with y as (select extract(year from sysdate) year from dual)
SELECT CASE WHEN column1 = y.year then 'up_year' else 'past_year' end from y -- and your table
A common table expression (CTE) is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement
您可以将select into一个变量分成两个步骤提取输出然后使用它
您只想匹配当前年份。那么一种选择是使用 TO_CHAR(,'yyyy')
:
SELECT CASE
WHEN column1 = TO_CHAR(sysdate,'yyyy') then
'up_year'
ELSE
'past_year'
END AS "My Year"
FROM tab