您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL Server 2005将VARCHAR转换为INT,但默认使用无效类型

SQL Server 2005将VARCHAR转换为INT,但默认使用无效类型

试试这个:

SELECT
    SUM(CASE ISNUMERIC(dimension) 
           WHEN 1 THEN CONVERT( INT, dimension ) 
           ELSE 0  
        END)
FROM
    mytable

CASE应检查是否dimension为数字-如果是,则返回该值。如果不是数字,则返回认值(此处:0)

是否需要经常查询,也可以向表中添加一个持久化的计算列,该列封装了该计算并存储了值。这样,在进行求和等操作时,您不必总是重新计算值:

ALTER TABLE mytable
  ADD NumericValue AS CASE ISNUMERIC(dimension) 
      WHEN 1 THEN CONVERT( INT, dimension ) ELSE 0 END PERSISTED

现在,您可以SELECT dimension, numericvalue FROM mytable获取两个值,而不必执行任何计算。

SQLServer 2022/1/1 18:38:41 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶