SQL选择列tinyint

时间:2017-03-21 08:53:14

标签: sql-server

我有一个包含列的表:

import org.springframework.web.servlet.i18n.SessionLocaleResolver
beans = {
    localeResolver(SessionLocaleResolver) { 
        defaultLocale= new java.util.Locale("en","GB") 
  }
}

我正在做一个选择,其中txntype的值等于9:

txntype (tinyint, not null)

但是引发了错误:

  

结果空间不足,无法将uniqueidentifier值转换为char。

我也尝试过:

where CAST(txntype as varchar(3)) = '9'

但执行查询时未选择任何记录。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

是否可以添加该表的create语句和整个select语句,因为它似乎已将该列声明为uniqueidentifier列,或者您的select正在使用另一列的值而不是您正在使用的列在你的where子句中。

此外,ISNUMERIC() function返回一个位(0或1),指示值是否实际可以转换为数值数据类型。将其与值9进行比较将始终产生" false"对于那段where子句。

如果列实际上是数字类型,则无论如何都不必在where子句中强制转换值。

    where [txntype] = 9

如果列真的是一个tinyint就足够了。这也是您需要查看查询的其他部分以找出错误原因的原因。

答案 1 :(得分:0)

您无需使用castisnumeric

只需txntype = 9