DB/SQL

VARCHAR 컬럼과 INT 컬럼 비교

토킹포테토 2023. 6. 8. 16:03
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