반응형
VARCHAR 필드에서 MAX() 사용
다음과 같은 데이터 세트가 있는 테이블이 있습니다.
ID (VARCHAR2 field)
D001
D002
D010
D0012
사용합니다max()이 방면에
Select max(ID) from <table-name>;
돌아옵니다D010그 결과
결과가 그렇지 않은 이유는 무엇입니까?D0012?
당신은.D010왜냐하면 알파벳순으로,D010뒤에 오는D0012아니면 다른 말을 했거나,D01뒤에 오는D00그러므로 모든 것은.D01x시작하는 모든 것 뒤에 옵니다.D00x.
아래 코드는 당신의 예상대로 저에게 효과가 있습니다.
select max(to_number(regexp_substr(id, '\d+'))) id from <yourtable>;
SELECT *
FROM `<TABLE_NAME>`
ORDER BY CAST( `ID` AS DECIMAL( 10, 3 ) ) DESC
이것은 효과가 있을 것입니다.
Select MAX(ID) from table where IsNumeric(ID) = 1 ;
이것은 틀림없이 효과가 있을 것입니다.
select MAX(CAST(REPLACE(REPLACE(ID, 'D', ''), '', '') as int)) from <table-name>
MAX로 선택하려면 먼저 Varchar를 int로 캐스팅해야 합니다.아래 쿼리 사용:
select max(CAST(ID as signed)) as max_id from <table-name>;
언급URL : https://stackoverflow.com/questions/6353427/using-max-in-varchar-field
반응형
'programing' 카테고리의 다른 글
| 여러 테이블의 MYSQL 왼쪽 조인 카운트 (0) | 2023.08.13 |
|---|---|
| 어떻게 하면 모카와 차이와의 약속을 제대로 테스트할 수 있습니까? (0) | 2023.08.13 |
| 앱 시작 시 "BatchedBridge를 가져올 수 없습니다. 번들이 올바르게 패키지되었는지 확인하십시오." 오류 (0) | 2023.08.13 |
| 교차 도메인 jquery get (0) | 2023.08.13 |
| Oracle DB 버전을 가져오기 위한 쿼리 (0) | 2023.08.13 |