DB(6)
-
[ MS SQL ] 그룹별 TOP 10 뽑는 쿼리
방문 시 기록되는 테이블이 있습니다. TB_VISIT 방문일자 이름 2023-01-02 09:01:45.037 철수 2023-01-05 09:01:45.037 영희 2023-01-12 09:01:45.037 철수 2023-01-13 09:01:45.037 민수 2023-02-02 09:01:45.037 민수 2023-02-03 09:01:45.037 민수 2023-02-04 09:01:45.037 영희 월별 방문자 순위를 10위까지 뽑고 싶으면 다음과 같이 하면 됩니다. SELECT * FROM (SELECT LEFT(CONVERT(char(8), regtDate, 112), 6) Date, name, COUNT(*) Count, ROW_NUMBER() OVER (PARTITION BY LEFT(CONV..
2024.01.16 -
[ MS SQL ] 테이블 참조하여 생성 및 복사하기 SELECT INTO문
ORACLE의 CREATE TABLE AS SELECT 문과 유사한 구문입니다. 테이블을 새로 생성하고, 참조하는 테이블의 값도 복사가 됩니다. SELECT * INTO 생성할.테이블 FROM 참조할.테이블 전체가 복사되는 걸 원치 않고, 특정 컬럼만 가져오려면 다음과 같이 해야 합니다. SELECT * INTO 생성할.테이블 FROM ( SELECT 컬럼1, 컬럼2, ... FROM 참조할.테이블 ) AS 참테
2023.01.19 -
[ Altibase ] iBATIS iterate 구문 사용 시 쿼리 오류
아이바티스에서 리스트를 파라미터로 넘겨 문을 사용할 때 정상 쿼리인데도 불구하고 값이 정상적으로 넘어오지 않을 때가 있습니다. #list[].pk# 그럴 때는 다음과 같이 수정해서 사용하면 해결될 수 있습니다. 'list[].pk'
2020.11.19 -
[ Altibase ] DB상에 있는 탭, 줄바꿈 문자 제거
DB상에 들어가 있는 탭, 줄바꿈 문자를 쿼리 하나로 제거할 수 있는 방법입니다. CHR(아스키 코드 값) 함수는 아스키 코드 값에 해당하는 문자를 리턴하므로 다음과 같이 작성하시면 됩니다. 9 : Tab 10 : 줄 바꿈 13 : 캐리지 리턴 1. 탭 문자를 제거하는 방법입니다. UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명, CHR(9), ''); 2. 줄바꿈 문자를 제거하는 방법입니다. UPDATE 테이블명 SET 컬럼명 = REPLACE(REPLACE(컬럼명, CHR(10), ''), CHR(13), '');
2020.09.24 -
[ Altibase ] <selectKey>
는 태그 안에 써서 생성된 키값을 활용할 수 있습니다.\ keyProperty에 설정한 이름을 변수로 사용할 수 있습니다. 아래에는 pk로 설정하여 채번한 값을 사용하고 있습니다. type="pre"로 설정하면 insert문보다 먼저 값을 채번합니다. resultClass는 property의 자료형을 입력해 주시면 됩니다. INSERT INTO ABC (ABC_PK, ABC_VALUE) VALUES (#pk#, "ABC") SELECT SEQ_ABC.NEXTVAL pk FROM DUAL 단순한 insert문을 위해 존재하는 것이 아니고 멀티 스레드 상황에서 유용하게 쓰이기 때문에 단순 insert는 사용할 필요 없이 다음과 같이 사용하시면 됩니다. INSERT INTO ABC (ABC_PK, ABC_VA..
2020.03.18 -
[ Altibase ] Invalid use of host variables 오류 해결 방법
iBatis에서 제목과 같은 오류가 나타날 경우 SQL문에 호스트 변수를 살펴봐야 합니다. SELECT ? AS NAME FROM DUAL; prepared statement를 cast함수로 감싸주면 오류가 해결 됩니다. SELECT CAST(? AS VARCHAR(10)) NAME FROM DUAL;
2020.01.22