복붙노트

[SQL] 오라클의 FROM 절없이 선택

SQL

오라클의 FROM 절없이 선택

의 SQL 서버 테이블을 참조하지 않고 SELECT를 수행 할 수있다; 뭔가 같은 :

Select 1.2 +3, 'my dummy string'

오라클은없는 SELECT를 FROM 허용하지 않습니다, 저는 이러한 유형의 작업에 대한 이중 테이블을 사용; 뭔가 같은 :

Select 1,2+3, 'my dummy string' FROM DUAL

이러한 유형의 쿼리를 수행하는 더 좋은 방법이 있나요? 이 듀얼 테이블을 사용하는 것이 좋습니다 무엇입니까?

해결법

  1. ==============================

    1.아니, 오라클에 FROM 없이는 SELECT 없다.

    아니, 오라클에 FROM 없이는 SELECT 없다.

    듀얼 테이블을 사용하는 것은 좋은 연습입니다.

    듀얼 - 메모리 테이블이다. 당신이 그것에서 더미를 선택하지 않은 경우에는 I / O를 필요로하지 않는 특별 액세스 경로 (FAST DUAL)를 사용합니다.

    옛날 옛적에, 듀얼는 두 개의 레코드 (따라서 이름)을했고, 함께 결합되는 기록을 복제 더미 레코드 역할을하도록했다.

    지금은 가지고 있지만 하나 개의 레코드,하지만 당신은 여전히 ​​그것으로 행의 임의의 수를 생성 할 수 있습니다 :

    SELECT  level
    FROM    dual
    CONNECT BY
            level <= 100
    

    MySQL은 또한합니다 (fromless 구문뿐만 아니라) 이중 지원합니다.

  2. ==============================

    2.당신이 실제로 SELECT를 사용하지 않아도 시간의 대부분을 잊지 마세요.

    당신이 실제로 SELECT를 사용하지 않아도 시간의 대부분을 잊지 마세요.

    대신에:

    SELECT sysdate INTO l_date FROM dual;
    SELECT CASE WHEN i = j THEN 0 ELSE 1 END INTO l_foo FROM dual;
    ...
    

    당신이 사용할 수있는

    l_date := sysdate;
    l_foo  := CASE WHEN i = j THEN 0 ELSE 1 END;
    ...
    
  3. ==============================

    3.예, 듀얼 테이블은 보통이 정확한 목적을 위해 사용됩니다. 이 선택 할 테이블이없는 경우는 오라클에서 꽤 표준입니다.

    예, 듀얼 테이블은 보통이 정확한 목적을 위해 사용됩니다. 이 선택 할 테이블이없는 경우는 오라클에서 꽤 표준입니다.

  4. ==============================

    4.난 당신이 이중 사용 돼 생각합니다. 당신이 테이블 이름이없는 SQL을 실행해야 할 때 사용됩니다. 나는 날짜 뭔가 달렸다 또는 그런 멍청한 짓 밖으로 에코 SQL 스크립트에서 것보다 훨씬 다른를 사용하여 말할 수 없습니다.

    난 당신이 이중 사용 돼 생각합니다. 당신이 테이블 이름이없는 SQL을 실행해야 할 때 사용됩니다. 나는 날짜 뭔가 달렸다 또는 그런 멍청한 짓 밖으로 에코 SQL 스크립트에서 것보다 훨씬 다른를 사용하여 말할 수 없습니다.

  5. ==============================

    5.사실, SQL 서버의 구현이 아닌 표준입니다. 는 SQL-92 표준 (7.9 절)은 SELECT 문에서 FROM 절을 필요로한다. DUAL은 스칼라 행을 얻기 위해 선택하는 테이블을 제공하는 오라클의 방법입니다.

    사실, SQL 서버의 구현이 아닌 표준입니다. 는 SQL-92 표준 (7.9 절)은 SELECT 문에서 FROM 절을 필요로한다. DUAL은 스칼라 행을 얻기 위해 선택하는 테이블을 제공하는 오라클의 방법입니다.

  6. ==============================

    6.예, 듀얼 테이블은 오라클에서이 작업을 수행하는 일반적인 방법입니다. 사실, 그것은 단지이 도입되었다.

    예, 듀얼 테이블은 오라클에서이 작업을 수행하는 일반적인 방법입니다. 사실, 그것은 단지이 도입되었다.

    DUAL의 가장 큰 장점은 너무 빨리 당신이 자신을 만든 단일 행 테이블을 사용하는 경우보다 수를 사용하여 쿼리, 오라클의 최적화가 특별한 알고 있다는 것입니다. 그 외에는, 그것에 대해 아무것도 특별한있다.

  7. from https://stackoverflow.com/questions/1881853/select-without-a-from-clause-in-oracle by cc-by-sa and MIT license