checkID record_number data Order_number
a 0 1 2
a 1 2 0
a 2 3 1
a 3 4 3
가 ieprocedure 데이터를 반환해야 ORDER_NUMBER 컬럼에 따라 레코드를 가져 오는 쿼리를 찾기 갖는 데이터베이스를 고려 이 모든 조인 또는 다른 쿼리?
checkID record_number data Order_number
a 0 1 2
a 1 2 0
a 2 3 1
a 3 4 3
가 ieprocedure 데이터를 반환해야 ORDER_NUMBER 컬럼에 따라 레코드를 가져 오는 쿼리를 찾기 갖는 데이터베이스를 고려 이 모든 조인 또는 다른 쿼리?
SELECT *
FROM tablename
ORDER BY CASE WHEN record_number = 2 THEN 0 ELSE 1 END, record_number;
이 다음과 같은 순서로 당신에게 당신의 데이터를 제공합니다 :
| CHECKID | RECORD_NUMBER | DATA | ORDER_NUMBER |
-------------------------------------------------
| a | 2 | 3 | 1 |
| a | 0 | 1 | 2 |
| a | 1 | 2 | 0 |
| a | 3 | 4 | 3 |
select *
from YourTable
order by
case record_number
when 2 then 1
when 0 then 2
when 1 then 3
when 3 then 4
end
당신은이 상황에 CASE WHEN을 사용할 수 있습니다;
SELECT *
FROM tbl
ORDER BY CASE record_number
WHEN 2 THEN 1
WHEN 0 THEN 2
WHEN 1 THEN 3
WHEN 3 THEN 4
END
여기 SQL Fiddle DEMO입니다.
| CHECKID | RECORD_NUMBER | DATA | ORDER_NUMBER |
-------------------------------------------------
| a | 2 | 3 | 1 |
| a | 0 | 1 | 2 |
| a | 1 | 2 | 0 |
| a | 3 | 4 | 3 |
'Run SQL' 버튼 옆에 작은 화살표가 있으며, 그것을 누르고 'Markdown Output'을 선택하십시오. –
@MahmoudGamal 오, 좋았어요! 감사와 +1 .. –
가장 좋은 방법은 다음과 같이 분류 검사에 대한 추가 테이블을 생성하는 것입니다 :
record_number sort_seq
2 1
0 2
1 3
3 4
은 다음 표와 함께 가입을 할 무엇
select c.*
from check as c
join sortSeq as s on c.record_number=s.record_number
order by s.sort_seq
SELECT *
FROM tablename
ORDER BY Order_number
이 서식을 사용 귀하의 데이터 결과? [참조] (http://stackoverflow.com/a/14977123/447156) 할 수 있듯이, 나는 이것에 실패했다 :). –
답변을 주셔서 감사합니다,하지만 그것을 일반화하고 싶습니다. 그래서 순서가 동적으로 일어날 수 있습니다 .. 첫 번째 열 (체크 ID), 기본 키입니다 동일합니다. N 개의 결과로 일반화하고 싶습니다. – Ankit
@Ankit - n 개의 결과에 대해서는 n 개의 순서가 있어야합니다. 권리?? '2 번 레코드를 가지고 있습니다. ', ... n? –