【发布时间】:2021-09-07 19:47:44
【问题描述】:
例如,在一列整数中,我想用字符串“-”替换所有 0 值,但是当我这样做时,诸如 2089 之类的值将变为 2-89。有没有办法只替换单个数字0?
【问题讨论】:
-
列的数据类型是什么?
-
请发布您到目前为止尝试的内容以及您想要的结果。并完成问题标题以及用 - 替换 0 有什么问题?
-
一列只能包含一种数据类型;如果您要尝试在同一列中有多个(例如通过让
CASE表达式在WHEN/ELSE中返回多种数据类型),则将应用data type precedence。int的优先级高于varchar,因此'-'的值将返回 转换为int,从而产生0的值。事实上,这听起来像是一个格式问题,它是 表示层而不是 RDBMS 的工作。 -
例如,如果您使用的是 .Net 语言,则可以将值显示的元素格式设置为
#,##0;-#,##0;-。这将在数字中放置千位分隔符(例如1,000)并将0显示为单个-字符,但这些值仍将是强类型int值(两者都在RDBMS 和应用程序)。 -
@forpas INT 数据类型
标签: sql-server replace