String.Format 类似 T-SQL 中的功能? [英] String.Format like functionality in T-SQL?
本文介绍了String.Format 类似 T-SQL 中的功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在 T-SQL 中寻找一个内置函数/扩展函数,用于类似于 .NET 中的 String.Format
方法的字符串操作.
I'm looking for a built-in function/extended function in T-SQL for string manipulation similar to the String.Format
method in .NET.
推荐答案
如果您使用的是 SQL Server 2012 及更高版本,则可以使用 FORMATMESSAGE
.例如.
If you are using SQL Server 2012 and above, you can use FORMATMESSAGE
. eg.
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
会作为(无害的)错误出现
- Undocumented in 2012
- Limited to 2044 characters
- To escape the % sign, you need to double it.
- If you are logging errors in extended events, calling
FORMATMESSAGE
comes up as a (harmless) error
这篇关于String.Format 类似 T-SQL 中的功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文