[SQL] SQLite는 사용자 정의 순서로
SQLSQLite는 사용자 정의 순서로
나는 범주에있는 테이블을 가지고 :
ID Category
"1","Baking"
"3","Family"
"4","Entertaining"
"5","Children"
"6","Desserts"
지금은 select 문에 대한 결과를 주문하고 싶습니다
ID Category
"4","Entertaining"
"3","Family"
"1","Baking"
"5","Children"
"6","Desserts"
예를 들어. MySQL은, 당신은 이런 식으로 그것을 할 것입니다 :
SELECT * FROM CATEGORIES ORDER BY FIELD (ID, 4,3,1,5,6);
당신은 SQLite는 얼마나을하지만 할 것? 나는 필드에 "에 의해 순서를"필요가 없습니다.
해결법
-
==============================
1.
ORDER BY CASE ID WHEN 4 THEN 0 WHEN 3 THEN 1 WHEN 1 THEN 2 WHEN 5 THEN 3 WHEN 6 THEN 4 END
-
==============================
2.그 일의 두 번째 방법은 (... THEN 이미 다른 답변에 명시된 종료하면 첫 번째는 케이스 인)입니다 :
그 일의 두 번째 방법은 (... THEN 이미 다른 답변에 명시된 종료하면 첫 번째는 케이스 인)입니다 :
ORDER BY ID=4 DESC, ID=3 DESC, ID=1 DESC, ID=5 DESC, ID=6 DESC
-
==============================
3.왜?
왜?
정렬 순서는 응용 프로그램 고유의 것입니다 때문입니다 경우 응용 프로그램에서보다는 데이터베이스에 정렬을한다.
정렬 순서이기 때문에이 경우 그냥이 하나 개의 쿼리에 고유은 내가 귀하 께서 제안 그러나 쿼리에 인코딩, 예를 들어 호출 응용 프로그램이 투명 (표준 SQL 구문) :
SELECT T2.ID, T2.Category, T2.query_name_here_sort_order FROM ( SELECT T1.ID, T1.Category, CASE ID WHEN 4 THEN 1 WHEN 3 THEN 2 WHEN 1 THEN 3 WHEN 5 THEN 4 WHEN 6 THEN 5 END AS query_name_here_sort_order FROM CATEGORIES AS T1 ) AS T2 ( ID, Category, query_name_here_sort_order ) ORDER BY query_name_here_sort_order;
정렬 순서는 여러 쿼리 및 / 또는 응용 프로그램에서 사용하는 경우 다음 쿼리에서 해당 열을 사용하여 데이터베이스에서 테이블의 컬럼에 추가합니다.
from https://stackoverflow.com/questions/3303851/sqlite-and-custom-order-by by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server와 같은 패턴 "전체 단어 일치"검색 (0) | 2020.05.02 |
---|---|
[SQL] 날짜 범위 주어진에 임의의 날짜를 삽입 MYSQL (0) | 2020.05.02 |
[SQL] 저장 프로 시저 내에서 즉시 실행은 권한이 부족 오류를주고 계속 (0) | 2020.05.02 |
[SQL] 열 이름 제공된 값의 개수 나 테이블 정의와 일치하지 않습니다 (0) | 2020.05.02 |
[SQL] 행에 열을 변환 MYSQL (피벗 테이블) (0) | 2020.05.02 |