我有一张有栏的桌子:
txntype (tinyint, not null)我正在做一个to类型值等于9的选择:
where CAST(txntype as varchar(3)) = '9'但正在抛出一个错误:
结果空间不足,无法将unique标识符值转换为char。
我也试过:
where ISNUMERIC(txntype) = 9但是在执行查询时没有选择任何记录。有什么想法吗?
发布于 2017-03-21 10:29:34
您是否可以添加该表的create语句和整个select语句,因为似乎该列已声明为unique标识符列,或者您的select正在使用另一列的值执行某些操作,而不是在where子句中使用该列。
此外,ISNUMERIC()函数返回一个位(0或1),指示一个值是否可以实际转换为数字数据类型。将其与值9进行比较,始终会产生where子句的"false“。
如果列实际上是数字类型,则不必以where子句的任何方式转换值。
where [txntype] = 9如果列实际上是一个小值,那么这就足够了。这也是您需要查看查询的其他部分以找到错误原因的原因。
发布于 2017-03-21 09:11:18
您不需要使用cast或isnumeric
只是简单的txntype = 9
https://stackoverflow.com/questions/42922266
复制相似问题