2010年6月1日 星期二

sql 字串固定長度

底下為相關做法網址:
1. Will 在網路世界的學習心得與技術分享
2.SQL Server T-SQL LPAD & RPAD Functions (String Padding Equivalent to PadLeft & PadRight)

依第2個網址作法,他是已產生script;底下稍編修原文(因為太亂了,第一眼還真花):
另外,這範例是在國外;所以沒有中文.英文的需求考量,但..用在台灣就不行了;底下已經過調整符合中英文!!
(1)補左邊字串函數 fnPadLeft
ALTER FUNCTION dbo.fnPadLeft
(
@PadChar char(1),
@PadToLen int,
@BaseString varchar(100)
)
RETURNS varchar(1000)
AS
BEGIN

DECLARE @Padded varchar(1000)
DECLARE @BaseLen int
SET @BaseLen = datalength(@BaseString)
IF @BaseLen >= @PadToLen
BEGIN
SET @Padded = @BaseString
END
ELSE
BEGIN
SET @Padded = REPLICATE(@PadChar, @PadToLen - @BaseLen) + @BaseString
END
RETURN @Padded

END

(2)補右邊字串函數 fnPadRight
ALTER FUNCTION dbo.fnPadRight
(
@PadChar char(1),
@PadToLen int,
@BaseString varchar(100)
)
RETURNS varchar(1000)
AS
BEGIN

DECLARE @Padded varchar(1000)
DECLARE @BaseLen int
SET @BaseLen = datalength(@BaseString)
IF @BaseLen >= @PadToLen
BEGIN
SET @Padded = @BaseString
END
ELSE
BEGIN
SET @Padded = @BaseString + REPLICATE(@PadChar, @PadToLen - @BaseLen)
END

RETURN @Padded
END

沒有留言:

張貼留言