본문 바로가기
DataBase/MS-SQL

[MS-SQL] 특정 컬럼에서 소수점이 존재하는 레코드 조회하기

by 너울림 2023. 1. 5.

 

특정 컬럼에서 소수점이 존재하는 레코드 조회하기

 


포스팅 개요


원하는 데이터가 실수형 컬럼 또는 필드일 경우 소수점 여부를 확인하는 방법이 필요한 경우가 있습니다. 오늘 예제 쿼리문에서는 사용자 함수를 만들지 않고 바로 적용 가능한 쿼리로 준비하였습니다. 사용되는 기본 함수는 ROUND 함수와 FLOOR 함수와 사용합니다. 각 함수의 간단한 특징을 살펴보겠습니다.

  • ROUND 함수는 특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다.
  • FLOOR 함수는 지정된 숫자 식보다 작거나 같은 최대 정수를 반환합니다.


예제 쿼리


이번 포스팅에서는 테스트용 테이블을 조금 수정하겠습니다 (하단에 쿼리 포함)

테스트용 테이블
테스트용 테이블


예제(1) 소수점이 존재하는 레코드만 검색하기

-- 소수점이 존재하는 레코드만 검색하기
SELECT * FROM Test_Table 
WHERE ROUND(Stock_Weight, 10) - FLOOR(ROUND(Stock_Weight, 10)) <> 0


예제(2) 소수점이 없는 레코드만 검색하기

-- 소수점이 없는 레코드만 검색하기
SELECT * FROM Test_Table 
WHERE NOT ROUND(Stock_Weight, 10) - FLOOR(ROUND(Stock_Weight, 10)) <> 0


※ 테스트용 테이블 생성 쿼리

-- TEST 테이블을 중복 생성을 막기 위한 테이블 유무 검사
IF OBJECT_ID ('dbo.Test_Table') IS NOT NULL DROP TABLE dbo.Test_Table

-- TEST 테이블 생성
CREATE TABLE Test_Table(
 ID INT IDENTITY (1, 1) NOT NULL, --Key = 증가
 In_Date VARCHAR (10) NULL, -- 입고일자
 Employee VARCHAR (50) NULL, -- 사원
 Stock VARCHAR(50) NULL, -- 입고품
 Stock_Weight DECIMAL (18,2) NULL -- 수량
 PRIMARY KEY (ID)
)

-- TEST 테이블에 INSERT
INSERT INTO Test_Table(In_Date, Employee, Stock, Stock_Weight) VALUES 
('2022-12-01', '너울림', '사과', 130.8),
('2022-12-01', '너울림', '배', 120),
('2022-12-02', 'ullim', '바나나', 50.6),
('2022-12-07', '너울림', '바나나', 70.2),
('2022-12-07', 'ullim', '사과', 225),
('2022-12-08', 'ullim', '사과', 78),
('2022-12-09', '너울림', '귤', 150),
('2022-12-15', '너울림', '귤', 135.2),
('2022-12-15', 'ullim', '바나나', 111)

-- TEST 조회
SELECT * FROM Test_Table

실행 결과


순서대로 일반조회, 소수점 레코드만 조회, 정수 레코드만 조회가 실행됩니다.

에제 결과
예제 쿼리 실행 결과


참고 링크

 

https://learn.microsoft.com/ko-kr/sql/t-sql/functions/round-transact-sql?f1url=%3FappId%3DDev15IDEF1%26l%3DKO-KR%26k%3Dk(ROUND_TSQL)%3Bk(sql13.swb.tsqlresults.f1)%3Bk(sql13.swb.tsqlquery.f1)%3Bk(MiscellaneousFilesProject)%3Bk(DevLang-TSQL)%26rd%3Dtrue&view=sql-server-ver16 

 

ROUND(Transact-SQL) - SQL Server

ROUND(Transact-SQL)

learn.microsoft.com

https://learn.microsoft.com/ko-kr/sql/t-sql/functions/floor-transact-sql?f1url=%3FappId%3DDev15IDEF1%26l%3DKO-KR%26k%3Dk(FLOOR_TSQL)%3Bk(sql13.swb.tsqlresults.f1)%3Bk(sql13.swb.tsqlquery.f1)%3Bk(MiscellaneousFilesProject)%3Bk(DevLang-TSQL)%26rd%3Dtrue&view=sql-server-ver16 

 

FLOOR(Transact-SQL) - SQL Server

FLOOR(Transact-SQL)

learn.microsoft.com

댓글