[SQL] SQL ORDER 수치가 문자
SQLSQL ORDER 수치가 문자
나는 문자로 저장된 숫자의 열을 가지고있다. 나는이 열의에 의해 질서를 할 때 나는 다음을 얻을 :
(100) (131) (200) (21) (30) 31000 기타
어떻게 수치 이러한 문자를 주문할 수 있습니까? 내가 뭔가를 변환해야하거나 SQL 명령 또는 기능이 이미 존재합니까?
감사합니다.
해결법
-
==============================
1.이 시도:
이 시도:
ORDER BY CAST(thecolumn AS int)
-
==============================
2.이것은 나를 위해 일한 :
이것은 나를 위해 일한 :
ORDER BY ABS(column_name)
-
==============================
3.이것은 (Google에서 "자연 정렬"을 조회하는 경우 물건의 톤을 찾을 수 있습니다) "자연 정렬"에 숫자 문자열을 주문에 문제가 있습니다. 기본적으로 int로서 문자열을 캐스팅하고 그것을 수정해야 결과 값에 정렬.
이것은 (Google에서 "자연 정렬"을 조회하는 경우 물건의 톤을 찾을 수 있습니다) "자연 정렬"에 숫자 문자열을 주문에 문제가 있습니다. 기본적으로 int로서 문자열을 캐스팅하고 그것을 수정해야 결과 값에 정렬.
-
==============================
4.그 이유는 문자 데이터 유형, 당신은 문자열로 행을 정렬하는 것입니다.
그 이유는 문자 데이터 유형, 당신은 문자열로 행을 정렬하는 것입니다.
CAST BY ORDER에 대한 생각은 ()이 성능이 반환 된 결과의 수가 증가함에 따라 아래로 이동합니다 그러나, 올바른 것입니다.
그것은이 칼럼 만 수치 데이터의 경우, 가장 좋은 방법은 적절한 숫자 데이터 유형을 발견하고이를 변경하는 것입니다.
당신이 정말로 열을 변경할 수 없습니다 및 성능 문제를 가진 자신을 발견 할 경우에, 나는 정수로 값 캐스트를 포함하는 정렬 순서 열 (것 널 (null)이 적절한 값으로 변환)을 갖는 것이 좋습니다.
인덱스 정렬 순서 열 이상적으로는 CHAR 컬럼에 트리거를 추가 정수 값으로 char 값의 트리거가 삽입 또는 업데이트가 갱신 그래서.
-
==============================
5.어떤 경우에는 이것은 좋은 경기를 할 수 있습니다
어떤 경우에는 이것은 좋은 경기를 할 수 있습니다
ORDER BY LENGTH(column_name), column_name
당신은 모든 숫자 또는 동일한 길이의 문자와 숫자의 조합 제외한 모든 중 하나와 열이 특히합니다.
from https://stackoverflow.com/questions/489874/sql-order-chars-numerically by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 대소 문자를 구분 그룹 BY를 할까? (0) | 2020.06.29 |
---|---|
[SQL] MySQL의 : 한 테이블에서 레코드를 카운트 한 다음 다른 업데이트 (0) | 2020.06.29 |
[SQL] 오라클 : 같은 행의 다른 컬럼에서 선택 최대 값 (0) | 2020.06.29 |
[SQL] PHP에서 히어 닥 내에서 변수를 사용 (SQL 연습) (0) | 2020.06.29 |
[SQL] 포스트 그레스 - 기능이 개 배열의 교회법을 반환? (0) | 2020.06.29 |