我正在 T-SQL 中寻找内置函数/扩展函数,用于类似于 .NET 中的 String.Format
方法的字符串操作。
最佳答案
如果您使用的是 SQL Server 2012 及更高版本,则可以使用 FORMATMESSAGE
。例如。
DECLARE @s NVARCHAR(50) = 'World';
DECLARE @d INT = 123;
SELECT FORMATMESSAGE('Hello %s, %d', @s, @d)
-- RETURNS 'Hello World, 123'
<小时/>
来自 MSDN 的更多示例:FORMATMESSAGE
SELECT FORMATMESSAGE('Signed int %i, %d %i, %d, %+i, %+d, %+i, %+d', 5, -5, 50, -50, -11, -11, 11, 11);
SELECT FORMATMESSAGE('Signed int with leading zero %020i', 5);
SELECT FORMATMESSAGE('Signed int with leading zero 0 %020i', -55);
SELECT FORMATMESSAGE('Unsigned int %u, %u', 50, -50);
SELECT FORMATMESSAGE('Unsigned octal %o, %o', 50, -50);
SELECT FORMATMESSAGE('Unsigned hexadecimal %x, %X, %X, %X, %x', 11, 11, -11, 50, -50);
SELECT FORMATMESSAGE('Unsigned octal with prefix: %#o, %#o', 50, -50);
SELECT FORMATMESSAGE('Unsigned hexadecimal with prefix: %#x, %#X, %#X, %X, %x', 11, 11, -11, 50, -50);
SELECT FORMATMESSAGE('Hello %s!', 'TEST');
SELECT FORMATMESSAGE('Hello %20s!', 'TEST');
SELECT FORMATMESSAGE('Hello %-20s!', 'TEST');
SELECT FORMATMESSAGE('Hello %20s!', 'TEST');
注释:
- 2012 年无证
- 限制为 2044 个字符
- 要转义 % 符号,您需要将其加倍。
- 如果您在扩展事件中记录错误,则调用
FORMATMESSAGE
会出现(无害)错误
关于tsql - String.Format 类似于 T-SQL 中的功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/159554/