[SQL] 자르기 (하지 라운드) SQL Server의 소수점
SQL자르기 (하지 라운드) SQL Server의 소수점
나는 자르거나 반올림하지 않고 SQL에서 추가 소수점을 드롭하는 최선의 방법을 결정하기 위해 노력하고있어. 예를 들면 :
declare @value decimal(18,2)
set @value = 123.456
이 자동으로 라운드 @value는 대부분의 경우에 좋은 123.46 될 수 있습니다. 그러나,이 프로젝트를 위해, 그 필요하지 않습니다. 내가 필요하지 않은 소수를 절단하는 간단한 방법이 있나요? 나는 소수의 왼쪽 () 함수 및 변환 등을 사용할 수 있습니다 알고 있습니다. 다른 방법이 있습니까?
해결법
-
==============================
1.
select round(123.456, 2, 1)
-
==============================
2.
ROUND ( 123.456 , 2 , 1 )
때 세 번째 매개 변수! = 0이 라운드보다는 절단
http://msdn.microsoft.com/en-us/library/ms175003(SQL.90).aspx
통사론
ROUND ( numeric_expression , length [ ,function ] )
인수
-
==============================
3.
SELECT Cast(Round(123.456,2,1) as decimal(18,2))
-
==============================
4.여기에 내가 잘라야 할 수 둥근 아니었다 방법이있다 :
여기에 내가 잘라야 할 수 둥근 아니었다 방법이있다 :
select 100.0019-(100.0019%.001)
반환 100.0010
그리고 당신의 예 :
select 123.456-(123.456%.001)
반환 123.450
이제 제로 결말을 제거하려는 경우, 단순히 캐스트 :
select cast((123.456-(123.456%.001)) as decimal (18,2))
반환 123.45
-
==============================
5.사실 세 번째 매개 변수는 아닌 값 둥근 것, 0 또는 1 또는 2, 무엇이든.
사실 세 번째 매개 변수는 아닌 값 둥근 것, 0 또는 1 또는 2, 무엇이든.
CAST(ROUND(10.0055,2,0) AS NUMERIC(10,2))
-
==============================
6.라운드 선택적 매개 변수가 있습니다
라운드 선택적 매개 변수가 있습니다
Select round(123.456, 2, 1) will = 123.45 Select round(123.456, 2, 0) will = 123.46
-
==============================
7.당신은 소수를 원하거나하지?
당신은 소수를 원하거나하지?
사용 그렇지 않은 경우
select ceiling(@value),floor(@value)
당신이 0 함께 할 경우 라운드를 수행합니다
select round(@value,2)
-
==============================
8.라운딩 솔루션 예를 또 다른 잘라 내기.
라운딩 솔루션 예를 또 다른 잘라 내기.
Convert 71.950005666 to a single decimal place number (71.9) 1) 71.950005666 * 10.0 = 719.50005666 2) Floor(719.50005666) = 719.0 3) 719.0 / 10.0 = 71.9 select Floor(71.950005666 * 10.0) / 10.0
-
==============================
9.이것은 어떤 숫자의 소수 부분을 제거합니다
이것은 어떤 숫자의 소수 부분을 제거합니다
SELECT ROUND(@val,0,1)
-
==============================
10.
SELECT CAST(Value as Decimal(10,2)) FROM TABLE_NAME;
소수점 후 2 개 값을 줄 것입니다. (MS SQL 서버)
-
==============================
11.또 다른 방법은 ODBC TRUNCATE 함수이다 :
또 다른 방법은 ODBC TRUNCATE 함수이다 :
DECLARE @value DECIMAL(18,3) =123.456; SELECT @value AS val, {fn TRUNCATE(@value, 2)} AS result
LiveDemo
산출:
╔═════════╦═════════╗ ║ val ║ result ║ ╠═════════╬═════════╣ ║ 123,456 ║ 123,450 ║ ╚═════════╩═════════╝
말:
나는 내장 된 3 파라미터 세트 ROUND 함수를 1로 사용하는 것이 좋습니다.
-
==============================
12.나는이 꽤 늦게 알고 있지만 나는 대답으로 표시되지 않는 년 동안이 트릭을 사용하고있다.
나는이 꽤 늦게 알고 있지만 나는 대답으로 표시되지 않는 년 동안이 트릭을 사용하고있다.
단순히 값에서 0.005을 빼고 (NUM, @ 2) 라운드를 사용합니다.
귀하의 예 :
declare @num decimal(9,5) = 123.456 select round(@num-.005,2)
반환 123.45
그것은 자동으로 당신이 찾고있는 정확한 값으로 반올림을 조정합니다.
그건 그렇고, 당신은 영화 사무실 공간에서 프로그램을 다시입니까?
-
==============================
13.2 소수점으로 시점 이후 3 개 소수점 값을 변환하는이 코드를 사용 해보세요 :
2 소수점으로 시점 이후 3 개 소수점 값을 변환하는이 코드를 사용 해보세요 :
declare @val decimal (8, 2) select @val = 123.456 select @val = @val select @val
출력은 123.46이며
-
==============================
14.나는 당신이 단지 소수 값을 원한다고 생각, 이 경우 다음을 사용할 수 있습니다 :
나는 당신이 단지 소수 값을 원한다고 생각, 이 경우 다음을 사용할 수 있습니다 :
declare @val decimal (8, 3) SET @val = 123.456 SELECT @val - ROUND(@val,0,1)
-
==============================
15.이 질문은 정말 오래된하지만 아무도 라운드 하위 문자열을 사용하지 알고있다. (보통 8000 자입니다 SQL 서버에서 문자열의 제한) 라운드 정말 긴 숫자 이러한 장점과 기능 :
이 질문은 정말 오래된하지만 아무도 라운드 하위 문자열을 사용하지 알고있다. (보통 8000 자입니다 SQL 서버에서 문자열의 제한) 라운드 정말 긴 숫자 이러한 장점과 기능 :
SUBSTRING('123.456', 1, CHARINDEX('.', '123.456') + 2)
-
==============================
16.나는 우리가 Hackerrank에있는 간단한 예제 솔루션을 훨씬 더 쉽게 갈 수 있다고 생각합니다 :
나는 우리가 Hackerrank에있는 간단한 예제 솔루션을 훨씬 더 쉽게 갈 수 있다고 생각합니다 :
SELECT TRUNCATE(MAX(LAT_N),4) FROM STATION WHERE LAT_N < 137.23453;
솔루션 위는 당신에게 단순히 값이 4 개 소수점 포인트로 제한 만드는 방법 아이디어를 제공합니다. 당신은 낮추거나 위의 숫자 소수점 후, 당신이 원하는대로 4를 변경합니다.
-
==============================
17.모드 (X, 1) 내가 생각하는 가장 쉬운 방법입니다.
모드 (X, 1) 내가 생각하는 가장 쉬운 방법입니다.
-
==============================
18.
select convert(int,@value)
from https://stackoverflow.com/questions/44046/truncate-not-round-decimal-places-in-sql-server by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 분할 쉼표로 구분 행 [중복] (0) | 2020.03.18 |
---|---|
[SQL] 동일한 사용자 이름의 다른 테이블에서 업데이트 테이블 값 (0) | 2020.03.18 |
[SQL] 매개 변수는 정말 충분히 SQL 삽입을 방지 할 수 있습니까? (0) | 2020.03.18 |
[SQL] SQLite는 날짜 시간 비교 (0) | 2020.03.18 |
[SQL] C #으로 SQL 코드를 파싱 [폐쇄] (0) | 2020.03.18 |