2016-07-27 2 views
-1

는 [여기 이미지 설명을 입력합니다] [1]in 절을 순서대로 사용하는 방법?

enter image description here

enter image description here

특수 문자 내 정렬 순서에 영향을 미칩니 까?

[이미지에 제공된]이 쿼리를 해결하려고 시도한 후 in 절이 order by과 작동하지 않는다는 것을 알았습니다.

나는 'Desmond Tutu'라는 이름을 가진 사람이 첫 번째 위치에 표시되기 때문에 여전히 문제를 해결하려고 노력했습니다. 아무도 나에게 이것에 대한 이유를 말할 수 있습니까?

원하지 않는 세 가지 우선 순위를 부여하여 해결했습니다. 누구든지이 쿼리를 해결할 수 있도록 도와주세요. 감사합니다.

+1

이미지 읽을 수 없습니다 – Jens

+3

그리고 텍스트가 이미지보다 훨씬 낫습니다. – jarlh

+0

정확히 무엇을하려고합니까? –

답변

3

원하는 결과를 얻지 못하는 이유는 화학 및 물리학을 끝까지 밀어 넣고 나머지는 정렬되지 않은 채로 두는 것입니다. 주문을 명시 적으로 지정하지 않으면 서버는 결과를 자유롭게 반환 할 수 있습니다. 어떤 순서로든 실용적 일 수 있습니다. 쿼리의 결과는 집합이 (또는 경우에 따라 스칼라 값)이며 정의에 의한 집합은 순서가 지정되지 않습니다.

문제가있는 문은 입니다. 1984 년 수상자와 주제를 제목과 수상자 이름별로 표시하십시오. 그러나 화학과 물리학을 마지막으로 나열하십시오. 주문에 제목과 수상자 이름을 포함시켜야합니다.

또한, 운동은 in 조항의 부울 반환 값은 계정에 그것을 복용, 순서, 올바른 쿼리에 영향을 사용할 수있는 방법을 보여주기위한 것입니다, 다음과 같습니다

SELECT winner, subject 
FROM nobel 
WHERE yr=1984 
ORDER BY subject IN ('Physics','Chemistry'), subject, winner 
+0

나는 IN이 order by 節 +1에서 사용될 수 있다는 것을 알지 못했습니다. 또한, 여기에 약간의 테스트를했는데'select ... id로 id를 (1,2)'mysql에서 마지막 값으로이 두 값을 정렬했다 : table have : 1,2,3,4 and it 3,4,1,2가 정상입니까? –

+0

@JorgeCampos 나는'id in (1,2)'가 [1,2]는 1, [3,4]는 0을 반환 할 것이기 때문에 처음에는 [3,4]를 정렬한다고 생각 하겠지만 [3,4]의 순서는 불확실하며 [4,3] 일 수도 있습니다. 삽입 순서가 사용됩니다.) – jpw

+0

흠, 흥미 롭습니다. 감사. –

0

당신은

그래서 또한

ORDER BY firstclause, secondclause는 나머지 순위를 귀하의 경우에 else가 추가 .... 위격의 이름을 보조 주문을 할 필요가있다.

+0

안녕하세요 여러분, 정말 고마워요. 수상자를 선택하십시오. 주문시 ('피직스'의 경우 3 번, '화학'의 경우 2 \t \t 끝), 제목, 수상자가 잘 작동하고 있습니다.감사합니다 – Rohit

관련 문제