【发布时间】:2020-02-24 10:29:58
【问题描述】:
抱歉,如果之前有人问过这个问题 - 我花了几个小时搜索但没有找到任何有用的东西。
这真的很简单 - 我被要求创建一个包含一个字段的查询,该字段在设置时(不是我)创建为 VARCHAR 而不是 INT。
我需要对此字段进行一些计算,但是一些用户一直在其中输入文本,因此计算失败,因为它无法将数据转换为 INT。
我可以在 CASE 语句中添加什么来处理有文本的地方吗?
我在想类似下面的内容,但不知道实际代码是什么:
CASE
WHEN [Field1] IS TEXT THEN 1 ;
ELSE [Field2] as [Chose name]
END
编辑:请注意,这是在 MS SQL Server 中。 谢谢。
【问题讨论】:
-
顺便说一句:这是一个 CASE 表达式而不是一个语句。
-
感谢您用无用的信息填满论坛。
-
这不是论坛,@TomCamish,也不是无用的信息。
CASE表达式和Case(Switch) 语句完全不同。Case语句在 T-SQL 中不存在;要复制他们的逻辑,您必须使用IF...ELSE语句。 -
SQL_Variant_Property可用于检查列的数据类型,例如select SQL_Variant_Property( '42', 'basetype' ) as StringType, SQL_Variant_Property( 42, 'basetype' ) as NumericType;.
标签: sql sql-server string tsql case