sql-server - SQL Server FORMAT 创建长度非常大的 varchar
问题描述
这不是一个真正的问题,但我很想知道为什么。我正在使用 sql server 并FORMAT
在一个数字中使用返回一个 4000 长度的 varchar。为什么?
select format(1,'00')
此查询返回“01”
解决方案
考虑一个像这样的查询
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 个字符的任何字符串。
推荐阅读
- javascript - 在调用任何其他类函数时运行一个函数
- javascript - 是否有可能在 oclif 命令行框架中至少存在一个 falg?
- permutation - 如何从python中不同长度的二维数组创建所有可能组合的二维数组
- python - pyAudioAnalysis:获得测试音频与类的相似性?
- java - Android 应用程序区域设置不适用于 Play 商店版本
- c# - 如何获取 OpenXML word 文档中可用的 TableStyle 列表
- jms - 消息在重新提交到原始队列后被克隆到死信队列中
- php - 如何在使用 HTML Purifier 处理的内容内的 href 属性中允许大括号
- nginx - NGINX SSL 多端口反向代理到具有不同端口的相同 IP
- go - cgo: exec gcc: exec: "gcc": $PATH 中找不到可执行文件 Egress operator 安装中的错误