T-SQL을 사용하여 두 정수 값을 나누어 부동 결과를 얻는 방법은 무엇입니까?
T-SQL과 Microsoft SQL Server를 사용하여 다음과 같이 두 정수 사이를 나눌 때 십진수를 지정합니다.
select 1/3
그것은 현재 반환되고 있다.0
반품해 주셨으면 합니다.0,33
.
예를 들어 다음과 같습니다.
select round(1/3, -2)
하지만 그건 효과가 없어.원하는 결과를 얻으려면 어떻게 해야 하나요?
상수를 찾고 있다면 stb와 xiowl의 제안도 좋습니다.기존 필드 또는 정수 파라미터를 사용해야 하는 경우 먼저 플로트로 캐스팅할 수 있습니다.
SELECT CAST(1 AS float) / CAST(3 AS float)
또는
SELECT CAST(MyIntField1 AS float) / CAST(MyIntField2 AS float)
SQL Server가 정수 분할을 수행하기 때문입니다.이것을 시험해 보세요.
select 1 * 1.0 / 3
이는 정수를 매개 변수로 전달할 때 유용합니다.
select x * 1.0 / y
둘 다 캐스팅할 필요는 없어요.분할의 결과 데이터 유형은 항상 데이터 유형의 우선 순위가 높은 데이터 유형입니다.따라서 해결책은 다음과 같습니다.
SELECT CAST(1 AS float) / 3
또는
SELECT 1 / CAST(3 AS float)
사용하다
select 1/3.0
이것으로 충분할 것이다.
이해는 합니다.CAST
에 주입하는.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
binary, char, date, datetime, 10진수, json, nchar, signed, time 및 unsigned 유형으로 지정합니다.
이 트릭은 SQL Server에서 사용할 수 있고 더 짧습니다(이전 답변 참조).
SELECT 1.0*MyInt1/MyInt2
또는 다음 중 하나를 선택합니다.
SELECT (1.0*MyInt1)/MyInt2
이것을 사용하다
select cast((1*1.00)/3 AS DECIMAL(16,2)) as Result
이 sql에서는 먼저 float 또는 1.00으로 변환합니다.플로트 번호가 되는 출력.여기서는 소수점 두 자리를 고려하겠습니다.필요한 것은 선택하실 수 있습니다.
(저와 마찬가지로) 정수값의 솔루션을 찾기 위해 여기에 왔다면, 다음과 같은 답이 있습니다.
CAST(9/2 AS UNSIGNED)
5를 반환하다
보고 깜짝 놀랐어요select 0.7/0.9
돌아오는0.8
Teradata에서는 이미 부동수/10진수입니다!해야만 했다cast(0.7 as float)
내가 원하는 결과를 얻기 위해서요
리터럴을 사용하는 경우 SQL에 어떤 유형을 "알리는" 것이 가장 좋습니다.
소수점 결과를 원할 경우 숫자에 소수점 ".0"을 추가합니다.
SELECT 1.0 / 3.0
결과 |
---|
0.333333 |
부동(실제) 결과를 원하는 경우, 숫자에 "e0"을 추가합니다.
SELECT 1e0 / 3e0
결과 |
---|
0.333333333333333 |
언급URL : https://stackoverflow.com/questions/11719044/how-to-get-a-float-result-by-dividing-two-integer-values-using-t-sql
'IT' 카테고리의 다른 글
python으로 목록을 채우는 내장 기능 (0) | 2023.04.23 |
---|---|
Larabel에서 Excel로 Excel을 내보낼 때 어떻게 열 헤더를 포함할 수 있습니까? (0) | 2023.04.23 |
코코아 앱에서 터미널 명령 실행 (0) | 2023.04.23 |
뷰가 숨겨져 있을 때 자동 레이아웃을 사용하여 다른 뷰를 이동하는 방법은 무엇입니까? (0) | 2023.04.23 |
SQL에서 조회할 매개 변수를 전달하는 방법(Excel) (0) | 2023.04.23 |