SQL Server 쿼리에서 정수를 10진수로 변환하는 방법은 무엇입니까?
A열height
SQL Server 테이블의 정수 유형입니다.나는 나눗셈을 하고 그 결과를 내 쿼리에 소수로 표시하고 싶습니다.
Select (height/10) as HeightDecimal
어떻게 캐스팅을 해야 하나요?HeightDecimal
더 이상 정수가 아닌가요?감사해요.
SELECT height/10.0 AS HeightDecimal FROM dbo.whatever;
특정 정밀도 척도를 원하는 경우 다음과 같이 말합니다.
SELECT CONVERT(DECIMAL(16,4), height/10.0) AS HeightDecimal
FROM dbo.whatever;
SELECT CAST(height AS DECIMAL(18,0)) / 10
편집: 후드 아래에서 어떻게 작동합니까?
결과 유형은 두 인수의 유형과 동일하거나, 서로 다른 경우 데이터 유형 우선 순위 테이블에 의해 결정됩니다.따라서 당신은 어떤 주장을 비본질적인 것에 던질 수 있습니다.
지금이다DECIMAL(18,0)
아니면 동등하게 그냥 쓸 수도 있습니다.DECIMAL
그 기본 척도는 여전히 정수 유형의 일종입니다.0
는 "소수점 오른쪽에 숫자가 없음"을 의미합니다.따라서 다른 상황에서 그것에 대한 캐스팅은 우리가 달성하려고 하는 것과 반대인 정수로 반올림하는 데 잘 작동할 수 있습니다.
하지만, DECTION은 모든 것에 대한 그들만의 규칙을 가지고 있습니다.이들은 일반적으로 정수가 아니지만 항상 정확한 숫자입니다.우리가 강제로 발생시킨 DECTIMAL 나눗셈의 결과 유형은 특히 우리의 경우 DECTIMAL(29,11)로 결정됩니다.따라서 나눗셈의 결과는 10으로 나눗셈과 관련이 없는 11개 위치로 반올림되지만, 3으로 나눗셈할 때 반올림이 관찰됩니다.왼쪽 피연산자의 눈금을 조작하여 반올림 양을 제어할 수 있습니다.전체 식 주위에 다른 ROUUND 또는 CAST 연산을 배치하여 더 많이 반올림할 수도 있지만 더 적게 반올림할 수는 없습니다.
동일한 역학이 허용된 답에서 더 간단하고 더 나은 솔루션을 지배합니다.
SELECT height / 10.0
이 경우, 지수의 유형은 다음과 같습니다.DECIMAL(3,1)
그리고 그 결과의 유형은.DECIMAL(17,6)
3으로 나누어 반올림의 차이를 관찰합니다.
정밀도와 척도에 대한 이러한 모든 논의를 싫어하고 SQL Server가 언제부터라도 이전의 이중 정밀 부동 소수점 산술에서 모든 계산을 수행하기를 원한다면 다음과 같이 강제할 수 있습니다.
SELECT height / CAST(10 AS FLOAT(53))
또는 동등하게 그냥.
SELECT height / CAST (10 AS FLOAT)
높이를 소수점으로 캐스팅할 수 있습니다.
select cast(@height as decimal(10, 5))/10 as heightdecimal
또는 다음을 기준으로 나누는 값에 소수점을 배치합니다.
declare @height int
set @height = 1023
select @height/10.0 as heightdecimal
예제를 사용하여 sqlfidle 보기
select cast (height as decimal)/10 as HeightDecimal
declare @xx int
set @xx = 3
select @xx
select @xx * 2 -- yields another integer
select @xx/1 -- same
select @xx/1.0 --yields 6 decimal places
select @xx/1.00 -- 6
select @xx * 1.0 -- 1 decimal place - victory
select @xx * 1.00 -- 2 places - hooray
또한 temp_table에 10진수(10,3)와 같은 int를 삽입하는 것도 좋습니다.
언급URL : https://stackoverflow.com/questions/10271548/how-to-convert-integer-to-decimal-in-sql-server-query
'programing' 카테고리의 다른 글
PyCharm 플러그인으로 IntelliJ IDEA에서 Python 인터프리터를 구성하려면 어떻게 해야 합니까? (0) | 2023.08.10 |
---|---|
SQL Server가 있는 테이블과 관련된 모든 트리거를 찾는 방법은 무엇입니까? (0) | 2023.08.10 |
C에서 소켓 연결 상태를 찾는 방법은 무엇입니까? (0) | 2023.08.05 |
난수 리스트 생성, 합계 1 (0) | 2023.08.05 |
XML 그리기 가능을 사용한 수직선 (0) | 2023.08.05 |