[SQL] 그것은 tableless이 여러 행으로 선택이 가능합니까?
SQL그것은 tableless이 여러 행으로 선택이 가능합니까?
FROM 절없는 SELECT는 테이블을 쿼리하지 않고 우리에게 여러 열을 가져옵니다
SELECT 17+23, REPLACE('bannanna', 'nn', 'n'), RAND(), CURRENT_TIMESTAMP;
우리는 어떻게 쿼리를 쓸 수있는 테이블을 참조하지 않고 여러 행의 결과인가? 기본적으로, 데이터 정의 문으로 바꿀을 선택 남용. 결과는 단일 열 또는 여러 열을 가질 수 있습니다.
나는 DBMS 중립적 인 대답에 가장 관심이 있지만, (예를 들어, UNPIVOT 기준) 다른 사람을 환영합니다. 나는 가능한 한이 일을 여러 가지 방법으로 수집하고 싶습니다. 이 질문에 뒤에 어떤 기술이 응용 프로그램은 없습니다; 그것은 실제보다 더 이론적이다.
해결법
-
==============================
1.노동 조합을 사용합니다 :
노동 조합을 사용합니다 :
SELECT 1 UNION SELECT 2
MySQL은 다음과 같습니다 :
+---+ | 1 | +---+ | 1 | | 2 | +---+
사용 UNION ALL이 아닌 고유 한 행의 손실을 방지 할 수 있습니다.
-
==============================
2.당신의 RDBMS에서 지원하는 경우이 표 값 생성자를 사용할 수 있습니다. 여기 씨 Celko의 예입니다
당신의 RDBMS에서 지원하는 경우이 표 값 생성자를 사용할 수 있습니다. 여기 씨 Celko의 예입니다
SELECT X.* FROM (VALUES (1, 3.07766, 6.31371, 12.7062, 63.65600), (2, 1.88562, 2.91999, 4.30265, 9.92482), (3, 1.63774, 2.35336, 3.18243, 5.84089)) AS X (A, B, C, D, E);
-
==============================
3.T-SQL UNPIVOT은 열을 행 데이터를 트랜스 수 있습니다. 다중 unpivots 각 피봇 열의 직교 제품 동등하다.
T-SQL UNPIVOT은 열을 행 데이터를 트랜스 수 있습니다. 다중 unpivots 각 피봇 열의 직교 제품 동등하다.
SELECT N, S FROM (SELECT 1 aa, 2 ab, 3 ac, 'a' ba, 'b' bb, 'c' bc) s UNPIVOT (N for Num in (aa,ab,ac)) AS t UNPIVOT (S for Str in (ba,bb,bc)) AS u
결과: N | 에스 - + - 1 | ㅏ 1 | 비 1 | 씨 2 | ㅏ 2 | 비 2 | 씨 3 | ㅏ 3 | 비 3 | 씨
from https://stackoverflow.com/questions/2886449/is-it-possible-to-have-a-tableless-select-with-multiple-rows by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버 정규 표현식 (0) | 2020.07.16 |
---|---|
[SQL] 모호한 열 이름 오류 (0) | 2020.07.16 |
[SQL] 정지 MySQL의 재사용 AUTO_INCREMENT ID를 (0) | 2020.07.16 |
[SQL] 데이터베이스 오류 : 행 위치에 없습니다 0 (0) | 2020.07.16 |
[SQL] 는 SQL 애저의 정체성 씨앗을 다시 설정하는 방법 (0) | 2020.07.16 |