在 VFP 中有兩個函數 PADL() 和 PADR(),可以把字串填入特定字元至指定長度,而在 SQL Server 內則是可以利用 REPLICATE()、RIGHT() 、 LEFT() 和 LEN() 來達到相同的效果。
- 首先建立使用者自定函數,SQL 語法如下,在此以 PADL() 為例說明。
IF OBJECT_ID(N'dbo.PADL', N'FN') IS NOT NULL
DROP FUNCTION dbo.PADL
CREATE FUNCTION [dbo].[PADL]
(
@String nvarchar(100), -- 字串來源
@PaddingChar nvarchar(1), -- 填補字元
@StringLen tinyint -- 字串長度
)
RETURNS nvarchar(200)
AS
BEGIN
DECLARE @Result nvarchar(200)
-- 方法一
SET @Result = RIGHT(REPLICATE(@PaddingChar,@StringLen) + @String,@StringLen)
-- 方法二
SET @Result = REPLICATE(@PaddingChar,@StringLen - LEN(@String)) + @String
RETURN @Result
END
GO
- 方法一:依據使用者輸入的填補字元和預計字串長度,使用 REPLICATE()來產生完整的填補字元字串,並和原字串串接後,再利用 RIGHT()擷取字元。
- 方法二:依據使用者欲達到的字元長度扣掉原字串長度後,即為填補字元所需數量,再利用 REPLICATE()產生。
SELECT
[NO],
dbo.PADL([NO],'0',10) AS [PADL],
dbo.PADR([NO],'0',10) AS [PADR]
FROM
(
SELECT '1' AS NO
UNION ALL
SELECT '12'
UNION ALL
SELECT '123'
UNION ALL
SELECT '1234'
UNION ALL
SELECT '12345'
) AS T
沒有留言:
張貼留言