다음 데이터를 조건에 의해서 기대 결과로 나오게 하는 쿼리

데이터 : 1, 2, 2, 3, 3, 4, 5, 5, 5

기대 결과 : 5, 1,2, 2, 3, 3, 4

#1 union all을 쓰는 방법

select * from tableA where itemid = 3605255 and name like '%.exe' group by type

UNION ALL

select * from tableA where itemid = 3605255 and isHidden != 1 and name not like '%.exe';

UNION ALL 관련 페이지 : http://intomysql.blogspot.com/2011/01/union-union-all.html

 

UNION과 UNION ALL 의 차이 및 주의 사항

ANSI SQL에서 제안하는 집합 연산 "UNION", "INTERSECT", "MINUS" 중에서 MySQL에서는 UNION 집합 연산만 제공 하고 있다. (하지만 MySQL에서 INTERSECT나 MINUS를 다른 형태의 쿼리로 풀어서 사용할 수 ...

intomysql.blogspot.com

19.5.14 추가사항

#1-1union 이 포함된 쿼리문에 정렬을 넣으려고 할 때

a. union 각 쿼리에 정렬을 한 다음에 합치는 방법

Select * from ( %1) UNION ALL Select * from ( %2 )

%1, %2가 각 정렬이 적용된 쿼리를 넣어서 사용한다.

b. union으로 합친 결과 물에 정렬을 적용하는 방법

Select * from (%1 UNION ALL %2 ) %3

%3에 "order by ..."을 적용한다.

 

 

#2 sqlite의 rowid를 사용하는 방법

select * from ( SELECT name, CASE when name like '%.exe' THEN 0 ELSE ROWID END id FROM tableA where itemid = 3605255 )x group by x.id order by x.id ASC;

오라클은 가상의 sequencial한 id가 존재하고 이것으로 정렬 등에 사용한다.

sqlite도 유사하게 rowid란 가상의 sequencail한 id가 있어서 사용할 수 있다.

rowid 개념 관련 글 : https://ohgyun.com/698 

 

sqlite: limit (오라클의 rownum 기능)

발생일: 2015.12.29 키워드: sqlite3, limit, oracle rownum 문제: sqllite 에서 오라클에서 제공하는 rownum 기능은 뭘까? 해결책: SQLite는 limit라는 기능을 제공한다. SELECT COL1, COL2 FROM TAB01 ORDER BY..

ohgyun.com

 

by 무위자연 2019.05.09 14:18

김제동

19.4.17~5.2

상식적인 사회

그래서 우리가 행복지는 것에 대해서 이야기하자는 거다

헌법이 누구나 이야기할 수 있었으면 좋겠다

누가 누구를 비난하고 공격하고자하는 이야기가 아니다

국민이라면 누구나 당연히 받아야하는 권리를 보호하기 위한 것이다.

안 지켜지는 것도 있지만 최소한 방향 제시는 하고 있다

아는 만큼 더 보이지만 따뜻한 이야기다.

특정인에 대한 추모도 있고 어떤 단체나 사람에겐 비난 보단 가벼운 비판도 있다

 

http://www.yes24.com/Product/Goods/63691247?scode=032&OzSrank=1

by 무위자연 2019.05.03 08:16
| 1 |