아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
오세이사 추영우 신시아 사랑스러운 멜로
아하

생활

생활꿀팁

대담한황로142
대담한황로142

오라클 쿼리 관련해서 질문 드립니다.

안녕하세요 급여 관련해서 쿼리 질문 드립니다.

홍길동의 급여에서 2000을 뺀 급여보다 적게 받은 사원의 이름과 급여을

구해 주세요

테이블 EMP

이름 NAME 급여 SAL

홍길동 10000000

김사랑 1300000

    4개의 답변이 있어요!
    • 하얀고슴도치236
      하얀고슴도치236

      select name, sal

      where sal < (select (sal-2000) from emp where name= '홍길동')

      from emp

      ;

      이런식으로 서브쿼리를 사용하시는게 가장 대중적인 방법입니다.

      만약 홍길동의 급여가 변동이 없는 자료라면 그냥 하드코딩 해서 아래와 같은 형식으로 하시는게 더 빠르고 안정적이긴 합니다.

      select name, sal

      where sal < 10000000 - 2000

      from emp

      ;

      또한 찾아야하는 급여 자체가 고정이 된 경우 아래와 같이 바꾸는게 거기서 더 좋습니다.

      select name, sal

      where sal < 9998000

      from emp

      ;

    • 홍길동의 급여를 먼저 구해야 되겠네요.

      쿼리를 두 번 써야 될 것 같지만, 서브쿼리로 한 번에 해결할 수 있습니다.

      SELECT name, sal FROM emp WHERE sal < (SELECT sal - 2000 FROM emp WHERE name = '홍길동')

      이렇게 쿼리 안에 또 쓴 쿼리를 서브쿼리라고 합니다. (위 쿼리에서 SELECT가 두 번 쓰였죠?)

      특히 서브쿼리 중에서도
      WHERE에 오는 서브쿼리를 Nested Subquery,
      FROM에 오는 서브쿼리를 Inline View,
      SELECT에 오는 서브쿼리를 Scalar Subquery라고 합니다.

    • 안녕하세요 쿼리 짜는 방법은 여러가 있으니 이중에 참조 하셔서 하나

      쓰시면 되겠네요

      select name , sal from emp

      where sal < ( select (sal -2000) from emp where name = '홍길동')

    • 탈퇴한 사용자
      탈퇴한 사용자

      안녕하세요?

      바로 쿼리문 알려드리겠습니다^^ 참고해서 수정하시면됩니다

      select name, sal from EMP

      where ((select sal from EMP where name= '홍길동') - 2000) > sal

      한번 시도해보시기 바랍니다