pmd*_*dci 1 sql-server t-sql cast
我将值从 SQL Azure 中的临时表插入到生产表中。临时表中的值是 varchar,而生产表中的目标值是 tinyint(它是人类的年龄字段,所以我认为最多 255 就足够了;))
问题是由于源系统中的错误,我们倾向于将一些值设为 -1 或 -2,而它们应该是 0。这会导致问题,因为 TINYINT 仅支持 0 到 255 的值(也因为这实际上是错误的)。我想知道是否有某种 case 语句可以用来将值转换为 0,如果它们低于 0,或者如果它们落在 0-255 范围之外?
因为TINYINT
只允许0-255
你也可以使用
ISNULL(TRY_CAST(YourCol AS TINYINT),0)
Run Code Online (Sandbox Code Playgroud)
在TRY_CAST
以上的回报NULL
,如果提供了无效的输入数据类型(包括-ve号),我会头脑离开这种方式。
但是,如果您必须将这些更改为0
您可以将其包装在ISNULL
归档时间: |
|
查看次数: |
1383 次 |
最近记录: |