VBA允許用戶定義的字串格式在Format()。我對復制占位符@和!SQL Server(使用其Format()功能? - 對替代品開放)特別感興趣。
我的用例需要Variant在 VBA 中混合存盤為型別的字符和數字。
使用@和!占位符字符,這是我想從 SQL Server 中的 VBA 模仿的內容。
VBA:
Format(12DFR89, "!@@-@-@@@@")
- 輸出:12-D-FR89
uj5u.com熱心網友回復:
當您詢問復制固定格式時,"!@@-@-@@@@"您可以使用復制 VBA 行為的 UDF 執行此操作:
CREATE FUNCTION dbo.CustomFormat(@VALUE VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS
BEGIN
DECLARE @MAX_LENGTH INT = 7
SET @VALUE = RIGHT(@VALUE ISNULL(RIGHT(REPLICATE('?', @MAX_LENGTH - LEN(@VALUE)), @MAX_LENGTH), ''), @MAX_LENGTH)
RETURN CONCAT(
LEFT(@VALUE, 2),
'-',
SUBSTRING(@VALUE, 3, 1),
'-',
SUBSTRING(@VALUE, 4, @MAX_LENGTH)
)
END
GO
例子:
SELECT
test,
dbo.CustomFormat(test)
FROM ( VALUES
('1'), ('12'), ('123'), ('1234'), ('12345'), ('123456'), ('1234567'), ('12345678'), ('123456789'), ('1234567890')
) AS T(test)
為了:
test
1 1?-?-????
12 12-?-????
123 12-3-????
1234 12-3-4???
12345 12-3-45??
123456 12-3-456?
1234567 12-3-4567
12345678 23-4-5678
123456789 34-5-6789
1234567890 45-6-7890
(替換'?'用' '的函式來獲取空間)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311513.html
上一篇:如何為整個資料庫生成腳本
下一篇:Sql表資料顯示變化
