문제
우리 모두는 T-SQL의 문자열 조작 기능이 때때로 아쉬운 점이 많다는 것을 알고 있습니다.
T-SQL에서 오른쪽 정렬 텍스트 열로 출력해야 하는 숫자 필드가 있습니다.예:
Value
----------
143.55
3532.13
1.75
어떻게 하시겠습니까?좋은 솔루션은 명확하고 간결해야 하지만 "너무 영리하다"는 점도 있다는 점을 기억하세요.
나는 이것이 잘못된 장소라는 데 동의합니다. 하지만 때로는 우리가 통제할 수 없는 힘에 의해 갇히게 될 때도 있습니다.
감사합니다.
해결책
그만큼 STR 기능 선택적 길이 인수와 소수 자릿수 인수가 있습니다.
SELECT STR(123.45, 6, 1)
------
123.5
(1 row(s) affected)
다른 팁
가장 쉬운 방법은 왼쪽으로 패딩하는 것입니다.
CREATE FUNCTION PadLeft(@PadString nvarchar(100), @PadLength int)
RETURNS nvarchar(200)
AS
begin
return replicate(' ',@padlength-len(@PadString)) + @PadString
end
go
print dbo.PadLeft('123.456', 20)
print dbo.PadLeft('1.23', 20)
SQL에서 이 작업을 수행해야 하는 경우 다음 코드를 사용할 수 있습니다(이 코드에서는 40자보다 큰 숫자가 없다고 가정합니다).
SELECT REPLICATE(' ', 40 - LEN(CAST(numColumn as varchar(40)))) +
CAST(numColumn AS varchar(40)) FROM YourTable
제휴하지 않습니다 StackOverflow