답변:
상수를 찾고 있다면 stb와 xiowl의 제안이 좋습니다. 정수인 기존 필드 또는 매개 변수를 사용해야하는 경우 먼저 부동 소수점으로 캐스트 할 수 있습니다.
SELECT CAST(1 AS float) / CAST(3 AS float)
또는
SELECT CAST(MyIntField1 AS float) / CAST(MyIntField2 AS float)
decimal
둘 다 캐스팅 할 필요는 없습니다. 디비전의 결과 데이터 유형은 항상 데이터 유형 우선 순위 가 더 높은 유형 입니다. 따라서 솔루션은 다음과 같아야합니다.
SELECT CAST(1 AS float) / 3
또는
SELECT 1 / CAST(3 AS float)
나는 이해 CAST
하기 위해 ING FLOAT
MySQL은 허용되지 않으며 당신이 시도 할 때 오류가 발생합니다 CAST(1 AS float)
에서 언급 한 바와 같이 MySQL의 DEV .
이에 대한 해결 방법은 간단합니다. 그냥 해
(1 + 0.0)
그런 다음을 사용 ROUND
하여 다음 과 같은 특정 소수점 이하 자릿수를 얻습니다.
ROUND((1+0.0)/(2+0.0), 3)
위의 SQL은 1을 2로 나누고 부동 소수점을 소수점 3 자리로 반환합니다 0.500
.
한 캔 CAST
: 다음과 같은 유형의 진수, 문자, 날짜, 날짜, 소수, JSON, NCHAR, 서명, 시간, 그리고 부호 .
CAST
하지만 캐스팅은 허용하지 않습니다 FLOAT
. DECIMAL
대신 캐스트하십시오 . 예를 들어 stackoverflow.com/questions/7368163/…을 참조하십시오 .
select cast((1*1.00)/3 AS DECIMAL(16,2)) as Result
여기이 sql에서 먼저 float로 변환하거나 1.00을 곱하십시오. 출력은 float 숫자입니다. 여기서 소수점 이하 두 자리를 고려하십시오. 필요한 것을 선택할 수 있습니다.