[SQL] 어떻게 SQL의 조합에 의해 주문하는?
SQL어떻게 SQL의 조합에 의해 주문하는?
데이터가 함께 많은 선택과 조합을에서 올 때 그것을 위해 할 수 있습니까? 등
Select id,name,age
From Student
Where age < 15
Union
Select id,name,age
From Student
Where Name like "%a%"
어떻게 이름이 쿼리를 주문할 수 있습니다.
일부는이 같은 모습을 조회 할 수있다.
Select id,name,age
From Student
Where age < 15 or name like "%a%"
Order by name
그러나이 경우에는 그냥 그 솔루션을 무시합니다.
해결법
-
==============================
1.그냥 써
그냥 써
Select id,name,age From Student Where age < 15 Union Select id,name,age From Student Where Name like "%a%" Order by name
IS에 의해 순서는 전체 결과 집합에 적용
-
==============================
2.
Select id,name,age from ( Select id,name,age From Student Where age < 15 Union Select id,name,age From Student Where Name like "%a%" ) results order by name
-
==============================
3.(가) 정렬 UNION의 첫 번째 문에 적용하기 위해서는, 당신은 UNION ALL (이들 모두 오라클에 필요하다고 표시)와 부속에 넣어 수 있습니다 :
(가) 정렬 UNION의 첫 번째 문에 적용하기 위해서는, 당신은 UNION ALL (이들 모두 오라클에 필요하다고 표시)와 부속에 넣어 수 있습니다 :
Select id,name,age FROM ( Select id,name,age From Student Where age < 15 Order by name ) UNION ALL Select id,name,age From Student Where Name like "%a%"
아니면 SELECT가 주문한 최고를 보장 할 수있는 결과이 같은 바닥 SELECT 위에 표시 (니콜라스 캐리의 의견을 주소) :
Select id,name,age, 1 as rowOrder From Student Where age < 15 UNION Select id,name,age, 2 as rowOrder From Student Where Name like "%a%" Order by rowOrder, name
-
==============================
4.모두 다른 답변이 올바른지,하지만 난 주목할 가치를 생각하는 나는 그래서 ... 당신이 별명에 의해 순서를 필요로 별명이 모두 선택에 대해 동일 있는지 확인합니다 실현되지 않았다 붙어있어 장소
모두 다른 답변이 올바른지,하지만 난 주목할 가치를 생각하는 나는 그래서 ... 당신이 별명에 의해 순서를 필요로 별명이 모두 선택에 대해 동일 있는지 확인합니다 실현되지 않았다 붙어있어 장소
select 'foo' union select item as `foo` from myTable order by `foo`
내가 먼저 선택하지만, 역 따옴표 다른 사람에 대한 작은 따옴표를 사용하고 알 수 있습니다.
즉, 당신이 필요로 정렬 당신을 얻을 것이다.
-
==============================
5.주문은 그래서 그냥, 조합 후에 적용됩니다 문장의 끝에서 order by 절을 추가 :
주문은 그래서 그냥, 조합 후에 적용됩니다 문장의 끝에서 order by 절을 추가 :
Select id,name,age From Student Where age < 15 Union Select id,name,age From Student Where Name like '%a%' Order By name
-
==============================
6.나는 종류가 UNION의 한에 적용 할 경우 사용 연합 (EU)의 경우 모든 :
나는 종류가 UNION의 한에 적용 할 경우 사용 연합 (EU)의 경우 모든 :
Select id,name,age From Student Where age < 15 Union all Select id,name,age From ( Select id,name,age From Student Where Name like "%a%" Order by name )
-
==============================
7.다른 답변이 언급 한 바와 같이, LAST 연합 후 '에 의한 주문은'노동 조합에 합류 모두 데이터 세트에 적용해야합니다.
다른 답변이 언급 한 바와 같이, LAST 연합 후 '에 의한 주문은'노동 조합에 합류 모두 데이터 세트에 적용해야합니다.
나는 두 개의 데이터 세트를 가지고 있지만, 다른 테이블하지만 같은 열을 사용했다. LAST 연합 후 '에 의한 주문은'여전히 작동하지 않았다. '에 의해 순서'에 사용되는 열에 대한 ALIAS를 사용하여 트릭을했다.
Select Name, Address for Employee Union Select Customer_Name, Address from Customer order by customer_name; --Won't work
솔루션은 사용 별칭 'User_Name을'입니다 그래서 :
Select Name as User_Name, Address for Employee Union Select Customer_Name as User_Name, Address from Customer order by User_Name;
-
==============================
8.이 사용할 수 :
이 사용할 수 :
Select id,name,age From Student Where age < 15 Union ALL SELECT * FROM (Select id,name,age From Student Where Name like "%a%")
from https://stackoverflow.com/questions/4715820/how-to-order-by-with-union-in-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 특정 순서로 여러 값 BY SQL ORDER? (0) | 2020.04.01 |
---|---|
[SQL] 어떻게 제대로 오라클 ORDER BY와 ROWNUM을 사용 하는가? (0) | 2020.04.01 |
[SQL] Grails의 SQL 문을 기록하는 방법 (0) | 2020.04.01 |
[SQL] 어떻게 PostgreSQL의에서 함수 내부에서 SELECT의 결과를 반환하는? (0) | 2020.04.01 |
[SQL] SQL 서버 : 사용하여 테이블의 기본 키를 얻기 SQL 쿼리 [중복] (0) | 2020.04.01 |