首页 > 解决方案 > SQL Server FORMAT 创建长度非常大的 varchar

问题描述

这不是一个真正的问题,但我很想知道为什么。我正在使用 sql server 并FORMAT在一个数字中使用返回一个 4000 长度的 varchar。为什么?

select format(1,'00')

此查询返回“01”

标签: sql-server

解决方案


考虑一个像这样的查询

drop table if exists #t

create table #t(val int, fmt varchar(20))

insert into #t(val,fmt) values (1,'00')
insert into #t(val,fmt) values (1,'0000000')
insert into #t(val,fmt) values (1,'0000000000000000000')

select format(val,fmt) formatted from #t

应该是什么数据类型formatted?它不能每行更改,因此必须选择一种类型来保存所有值。并且nvarchar(4000)是一个合理的选择,因为它可以容纳最多 4000 个字符的任何字符串。


推荐阅读