728x90
SELECT A.컬럼,
(SELECT COUNT(컬럼) FROM TEST2 B WHERE A.형식이 VARCHAR인 컬럼 = B.형식이 INT인 컬럼)
FROM TEST1 A
이런 식의 쿼리가 있었는데 INT 형식으로 변환할수 없다는 ERROR가 났다.
생각을 해보다가 VARCHAR형식의 컬럼 과 INT 형식의 컬럼을 비교 가능 여부가 헷갈리기 시작했다..
그래서 공부 차 정리해보고자 한다.
CHAT GPT에게 물어본 결과 아래와 같다.
* VARCHAR 와 INTEGER 간의 비교는 가능하다.
비교 연산자(=.<.>)를 사용하여 VARCHAR 와 INTEGER의 값을 비교할 수 있다.
그러나 이러한 비교는 데이터 형식의 호환성을 고려해야 한다.
아래의 경우, VARCHAR열과 INTEGER 값을 비교하려고 하면 VARCHAR값을 INTEGER로 변환합니다.
이러한 자동 변환은 데이터의 실제 값에 따라 예기치 않은 결과가 초래될 수 있으므로 CAST()를 사용하여 변환 후 SELECT하는걸 권장함.
SELECT * FROM your_table WHERE varchar_column = 123;
* CAST()함수 사용
-- INTEGER 값을 VARCHAR로 변환하여 비교
SELECT * FROM your_table WHERE varchar_column = CAST(123 AS VARCHAR);
-- VARCHAR 값을 INTEGER로 변환하여 비교
SELECT * FROM your_table WHERE CAST(varchar_column AS INTEGER) = 123;
'DB > SQL' 카테고리의 다른 글
[Oracle] ORDER BY 사용 시, ROWNUM (0) | 2023.05.23 |
---|---|
[SQL] DB 옵티마이저(Optimizer)란? (0) | 2023.05.10 |
[SQL] INDEX 가공 (0) | 2023.05.10 |
[Oracle] SQL SELECT 쿼리 실행 순서 (0) | 2023.05.10 |
[Oracle] 데이터 복구 쿼리(TIMESTAMP) (0) | 2023.05.04 |