2016-12-09 7 views
0

이것은 오라클 SQL을 처음 사용하는 것입니다. (.)오라클에서 점 (.)은 숫자 값 다음에 오는 것을 의미합니까?

SELECT * 
FROM TABLE_A 
WHERE COLUMN_A = 1. 
AND COLUMN_B <> 0. 

사람이 그 정수를 의미 한 후 점을 무엇 나를 설명 할 수 : 나는이 같은 쿼리에서 온? 점 (.)을 넣지 않으면 어떤 변화가 있을까요? 사전 :

+0

과 동일

SELECT * FROM TABLE_A WHERE COLUMN_A = 1.0 AND COLUMN_B <> 0.0 

은'대신 _integer_에 대한 부동 소수점 숫자로이 번호를 치료하기 위해 컴파일러/인터프리터를 강제로 숫자 후 .'. 차이가 나는지 여부는 컴파일 된 작업과 컴파일러/인터프리터가 작업을 위해 기대하는 데이터 유형의 종류에 따라 다릅니다. –

+1

@ t.niese는 대부분의 프로그래밍 언어에서 INTEGER (다른 종류와 정밀도)와 FLOAT/DOUBLE 등의 차이점이 있습니다. 이러한 언어에서는 5/2 = 2이지만 5./2 = 5.0/2 = 5/2. = 2.5. 불행히도 오라클의 대부분이 C로 작성되었지만 C가 INTEGER와 FLOAT (정수 연산이 훨씬 빠르며 필요한 경우도 있음)을 구분하더라도 Oracle은 이러한 구분을하지 않습니다. 기회를 놓쳤습니다. 그래서 오라클에서는 1, 1.과 1.0 사이에는 아무런 차이가 없습니다. – mathguy

답변

1

에서

덕분에 그냥 소수점 0을 추가합니다. 아무런 효과가 없습니다. 데이터 유형 COLUMN_Adecimal이 후 달라질 소수점 제로의의 COLUMN_A 수의 규모를 기반으로하는 경우는

1. = 1.0 
0. = 0.0 

에 해당합니다.

0

숫자는 소수점 0 개가 아닌 것으로 보아 본 적이 없지만 여기에있는 것처럼 보입니다. 대부분의 언어에서

SELECT * 
FROM TABLE_A 
WHERE COLUMN_A = 1 
AND COLUMN_B <> 0 
+0

미국에서 1과 같은 숫자를 보았습니다 (나는 동유럽에서 자랐으며 전에도 보지 못했습니다). – mathguy

관련 문제