을위한 적절한 결과를 제공하지 않습니다오라클 순서가 아닌 문자열 열
select * from table order by col1 asc
제대로 주문하십시오. (즉, 날짜는 가장 오래된 것부터 가장 최근의 것까지 숫자로, 가장 낮은 것부터 가장 높은 것까지) 하지만 내가하는 경우 select * from table order by upper(col1) asc
주문이 잘못되었습니다.
이 동작의 원인은 무엇입니까?
을위한 적절한 결과를 제공하지 않습니다오라클 순서가 아닌 문자열 열
select * from table order by col1 asc
제대로 주문하십시오. (즉, 날짜는 가장 오래된 것부터 가장 최근의 것까지 숫자로, 가장 낮은 것부터 가장 높은 것까지) 하지만 내가하는 경우 select * from table order by upper(col1) asc
주문이 잘못되었습니다.
이 동작의 원인은 무엇입니까?
UPPER는 문자열을 취해 문자열을 반환합니다. col1
이 문자열이 아닌 경우 함수가 실행되기 전에 문자열로 암시 적으로 형변환되어야합니다. 그러나 UPPER 함수의 출력이 문자열이기 때문에 정렬은 col1
의 정렬 의미가 아닌 문자열 정렬 의미를 사용해야합니다. col1
예를 들어,
문자열이 반환 '9'문자열을 반환 한 후 순 온다 문자열 '10'은 아마도 여러분이보고있는 문제 일 것입니다.
그러나 col1
이 문자열이 아닌 경우 정렬을 위해 대문자로 변환하는 것이 왜 불편합니까?
문제를 너무 정확하게 예측해 주셔서 감사합니다. – Victor
col1의 데이터 유형은 무엇입니까? 또한 "올바르지 않은"예제를 추가해야합니다. 여기에서 귀하의 모니터를 볼 수 없습니다 –
문자열이 아닌 열에서 upper (col)로 주문을 사용하여 얻으려는 결과는 무엇입니까? – jachguate
@jachguate. 이것은 내 이해를위한 것입니다. 사업 목적이 없음 – Victor