tsql - String.Format 类似于 T-SQL 中的功能吗?

标签 tsql string

我正在 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/

相关文章:

node.js - 高内存/性能关键计算-体系结构方法意见

sql-server - SQL Server : COLLATE CS->CI performance vs UPPER

c# - .NET SqlDataReader 对象是使用数据库游标,还是将整个结果集加载到 RAM 中?

.net - 如何将字符串连接到 MVC4 中模型返回的数据

string - NSDateFormatter.dateFromString 向 NSDate 返回 nil ("yyyy-MM-dd")

string - 为什么要测试这些数字 (2^16, 2^31 ....)

python - 无法在 Python 中比较字符串

TSQL根据最高日期选择不同的

c# - 如何用不同的数字替换每个字符串匹配项?

SQL 服务器 : combine only dates with no reference