Database/Oracle(3)
-
숫자로 된 문자열의 정렬 문제 해결
회사에서 일하면서 문자로 되어 있는 숫자를 정렬할 필요성이 있는데 데이터베이스를 본인이 만든것이 아니기에 왜 이건 NUMBER타입이 아니라 VARCHAR으로 만들었는지 의문스럽지만 정렬을 할때가 있는데 보면 글자이기에 그냥 순수하게 정렬을 하면 문제점이 발생한다. 이에 대한 해결 방법에 대해 정리해보자. 1. 문제점 임의로 문자 컬럼에 숫자 데이터로 삽입하고 정렬을 해보면 위와 같이 문제 없이 정렬되는 것을 볼수 있는데 여기서 문제점은 아래와 같은 경우에 발생한다. 아래에 보면 10,110, 20 ,1110의 데이터를 가지고 있는데 우리의 바램은 이게 10 - 20 - 110 - 1110으로 정렬되어야 할것 같지만 아래를 보면 데이터의 정렬이 원하는대로 되지 않는 것을 볼 수 있다. 이는 문자열 형식의 ..
2023.12.18 -
GROUP BY
GROUP BY 구문은 특정 컬럼을 기준으로 집계를 나타내기 위해 사용된다. GROUP BY 구문은 NULL값인 경우는 해당 ROW를 제외한 결과를 출력하고, WHERE절이 수행된 이후 실행된다 GROUP BY 구문에서 SELECT 뒤에 나오는 컬럼들은 GROUP BY 뒤에 모두 동일하게 와야만 한다. 윈도우 함수와 같이 사용할 수 없다 HAVING 구문은 GROUP BY구문에 대한 조건(SELECT구문에서 WHERE절 같은 성격)을 걸기 위해 사용된다. GROUP BY구분에서는 집계함수와 그룹함수를 사용할수 있다. SELECT * FROM EMP ORDER BY DEPTNO; 위와 같은 테이블의 결과를 보면 DEPTNO가 동일하게 겹치는 부분이 있다. 이렇게 공통되는 부분을 모아 결과를 보여줄수 있는게..
2023.10.26 -
SELECT의 실행순서
6번째 SELECT 컬럼명, 그룹함수(컬럼명) 1번째 FROM 테이블명 2번째 WHERE 조건식 3번째 GROUP BY 컬럼명 4번째 HAVING 조건식(GROUP BY에 대한) 5번째 ORDER BY 컬럼명 FROM: 데이터를 가져올 대상인 테이블(또는 뷰)을 지정합니다. WHERE: 선택적으로 사용되며, 지정된 조건에 맞는 행만 필터링합니다. GROUP BY: 그룹화할 열(칼럼)을 지정합니다. HAVING: 그룹화된 결과에 대한 조건을 지정하여 그룹을 필터링합니다. SELECT: SELECT 절에서 명시된 열(칼럼)들의 값을 계산하고 반환합니다. ORDER BY: 결과를 정렬하는 기준 열(칼럼)과 순서를 지정합니다. 요약하면 FROM -> WHERE -> GROUP BY -> HAVING -> SEL..
2023.10.25