提问人:John 提问时间:10/9/2023 最后编辑:Thom AJohn 更新时间:10/9/2023 访问量:51
在更新中将 int 转换为 varchar 时遇到问题 [已关闭]
Trouble converting int to varchar in update [closed]
问:
我在 .int
varchar
UPDATE
field1
是计算列的结果。我需要它成为我想要的样子,而不是.int
varcahr
'Y'
'1'
UPDATE table1
SET field1 = CAST(field1 AS VARCHAR(1))
UPDATE table1
SET field1 = CASE WHEN field1 = '1' THEN 'Y' ELSE 'N' END
将 varchar 值“Y”转换为数据类型 int 时转换失败。
答:
1赞
Simeon
10/9/2023
#1
如果查看 的列类型,则会看到 SQL Server 将其存储为field1
int
如果要存储 varchar 值,则必须在表中添加新的 varchar 列
ALTER TABLE table1 ADD vfield varchar(1)
然后更新新添加的文本列
UPDATE table 1 SET vfield = CASE WHEN field1 = 1 THEN 'Y' ELSE 'N' END
这会导致表中出现冗余,您应该考虑使用视图或查看输出的格式。
将 Y/N 值存储为位类型列 (1,0) 并在可视化工具中将其动态格式化为“是”或“否”会更有效
评论
field1
field1
select
field1