-1
나는 다음과 같은 성명에서 비율을 얻기 위해 노력하고 있어요 :분할 TSQL
Select ((query1)/(query2)) AS Ratio.
[결과가 0입니다 실제 결과는 그래서 SQL 제로로 반올림한다 .34 입니다. 이 문제를 어떻게 해결할 수 있습니까?
나는 다음과 같은 성명에서 비율을 얻기 위해 노력하고 있어요 :분할 TSQL
Select ((query1)/(query2)) AS Ratio.
[결과가 0입니다 실제 결과는 그래서 SQL 제로로 반올림한다 .34 입니다. 이 문제를 어떻게 해결할 수 있습니까?
Select(
(SELECT 8) --<-- Query 1 returns INT 8
/
(SELECT 5) --<-- Query 2 returns INT 5
) AS Ratio
는 두 값이 INT를하지만 나누었을 때 다시 진수 값을 얻을 수 있기 때문에, SQL Server는 int로 암시 적 변환을 수행하고 소수점을 절단하고 다시 정수를 반환합니다. 쿼리 위
SQL Server가 두 쿼리를 나누어 반환 된 결과에 암시 적 coversion 않는 두 쿼리에 의해 재곡 숫자 데이터 형식 결과로 변환 할 때 1
Select(
CAST((SELECT 8)AS NUMERIC(18,5)) --<-- Query 1 CAST as a DECIMAL or NUMERIC
/
CAST((SELECT 5) AS NUMERIC(18,5)) --<-- Query 2 CAST as a DECIMAL or NUMERIC
) AS Ratio
를 반환하고
결과 반환 1.60000000000000000000
정수부. 'numeric'또는 'float'의 한 쪽을 캐스팅하십시오 –
SELECT 문을 사용하면 결과는 여전히 0입니다. 각 쿼리의 결과는 숫자이지만, division은 위로 – ColorfulWind
의 방정식을 불어 넣습니다. 네, 둘 다 정수입니다. 정수 나눗셈을 피하기 위해 분자와 분모는 정수가 아니어야합니다 ("전체"부분 만 반환하고 나머지는 무시합니다). 당신은 복제본을 보았습니까? –