위의 예시에서 소수점 포함 및 음수 값을 사용하여 각 함수의 동작을 설명했습니다. FLOOR 함수는 가장 가까운 작은 정수 값을 반환하며, CEILING 함수는 가장 가까운 큰 정수 값을 반환합니다. 반면, ROUND 함수는 소수점 이하 값을 반올림하여 가장 가까운 정수 값을 반환합니다.
ROUND 함수는 소수점 값을 지정된 자리수로 반올림하는 데 사용됩니다. 이를 통해 원하는 소수 자릿수까지 반올림된 값을 얻을 수 있습니다. 예제를 통해 설명드리겠습니다.
첫 번째 예제에서는 ROUND(3.14159, 2)를 사용하여 소수점 다음 두 자리까지 반올림된 값인 3.14를 얻습니다. 두 번째 예제에서는 ROUND(2.5678, 3)을 사용하여 소수점 다음 세 자리까지 반올림된 값인 2.568을 얻습니다. 마지막 예제에서는 ROUND(7.99, 0)을 사용하여 소수점을 버리고 가장 가까운 정수인 8을 얻습니다.
위의 예제에서는 ROUND(숫자, 자리수) 형식을 사용하여 반올림할 숫자와 자리수를 지정했습니다. 자리수는 양의 정수로 지정되며, 0보다 작은 값을 사용할 수도 있습니다. 자리수가 음수인 경우, 해당 자리의 왼쪽에서 반올림이 이루어집니다. 예를 들어 ROUND(12345, -2)는 100의 자리에서 반올림하여 12400을 반환합니다. ROUND 함수를 사용하여 소수점 값을 원하는 자릿수로 반올림할 수 있습니다.
MSSQL의 LOG 함수
주어진 숫자의 로그 값을 계산하는 데 사용됩니다. 보통 자연로그 값을 계산하는 데에 많이 사용되며, 밑(base)을 지정하여 다른 로그 값을 계산하는 데에도 활용될 수 있습니다. 자연로그 값을 계산하기 위해서는 아래와 같이 LOG 함수를 사용합니다:
예를 들어, LOG(10)은 주어진 숫자 10의 자연로그 값을 계산하여 반환합니다.
SELECT LOG(10) -- 출력: 2.302585092994046
LOG(2, 8)은 주어진 숫자 8의 밑이 2인 로그 값을 계산하여 반환합니다. 이 경우, 2의 몇 제곱이 8인지 계산한 값, 즉 2^3 = 8 이므로 결과는 3이 됩니다.
SELECT LOG(2, 8) -- 출력: 3
로그 함수를 사용하여 숫자의 로그 값을 계산할 수 있으며, 자연로그 값을 계산하는 경우 많이 활용됩니다.
소수점 둘째 자리에서 반올림을 하지 않고 항상 소수점 첫 번째 자리까지만 표시하되, 둘째 자리의 숫자에 관계없이 항상 내림을 해야 합니다. 이러한 요구 사항을 충족시키려면 ROUND 함수 대신 FLOOR 함수를 사용하여 소수점 아래 두 번째 자리를 내림 처리한 후, 10으로 나누어 원하는 결과를 얻을 수 있습니다.
다만, SQL Server에서 FLOOR 함수는 소수점 아래를 모두 내림하는 함수이므로, 먼저 값을 10배 증가시켜 소수점 두 번째 자리를 정수 부분으로 만들고, FLOOR 함수를 적용한 후 다시 10으로 나누어 원래의 스케일로 되돌리는 처리가 필요합니다.
SELECT FLOOR(2.36888* 10) / 10
결과 : 2.300000
그러면 세번째 자리에서 버림을 할려면 어떻게 해야 할까요? 먼저 값을 100 배 증가시켜 소수점 두 번째 자리를 정수 부분으로 만들고, FLOOR 함수를 적용한 후 다시 100 으로 나누어 원래의 스케일로 되돌리는 처리작업을 하면 됩니다.