0

チェックする年齢フィールドがない場合、以下の年齢をチェックするwhere句を実行するにはどうすればよいですか?私はOracleDBを使用しています。

select LNAME || ', ' || FNAME as "Name", 
       TO_CHAR(sysdate,'YYYY') - TO_CHAR(DOB,'YYYY') as AGE 
  from STAFF
 where AGE = (select min(TO_CHAR(sysdate,'YYYY') - TO_CHAR(DOB,'YYYY')) 
                from STAFF);
4

2 に答える 2

1

最年少のスタッフを選択するには:

select  *
from    (
        select  *
        from    STAFF
        order by
                DOB desc
        ) SubQueryAlias
where   rownum = 1

SQLフィドルでの例。

于 2013-02-05T18:08:48.920 に答える
0

既存のOracleテーブルの例を次に示します。

SELECT * FROM 
(
 SELECT ename as "Name"
      , TO_CHAR(sysdate,'YYYY') - TO_CHAR(hiredate,'YYYY') as AGE 
  FROM scott.emp
)
WHERE age = (SELECT min(TO_CHAR(sysdate,'YYYY') - TO_CHAR(hiredate,'YYYY')) FROM scott.emp)
/

Name    AGE
----------------
SCOTT   26
ADAMS   26

たとえば、分析関数を年齢やその他のフィールドでパーティション化するために追加したり、単に年齢ascで並べ替えたりして、出力内のすべての従業員がどこを削除しているかを確認することもできます...

于 2013-02-05T18:26:07.610 に答える