【发布时间】:2019-08-13 14:55:57
【问题描述】:
我正在编写代码,该代码需要根据特定 ID 识别我的数据库中的列是否为空。我正在使用 Microsoft SQL Server Management Studio。
我试过了:
select count(*) as valid from table where id =7PB03150SW
但收到错误:
将 varchar 值转换为数据类型 int 时转换失败。
我也试过了:
select cast(( select count(*) from table where id = 7PB03150SW)as VarChar(120))
但收到错误:
将 varchar 值转换为数据类型 int 时转换失败。
我希望代码输出单个结果,即特定 ID 在表格中出现的次数。输出需要能够被 c# 文件读取。
【问题讨论】:
-
你能告诉我们架构吗?听起来
id是一个 int 列 -
您的
id列是INT吗?如果是这样,7PB03150SW不是用于比较的有效值,因为它是一个字符串。如果该列实际上是VARCHAR,则需要将7PB03150SW括在引号中以表示它是一个字符串:where id = '7PB03150SW' -
stackoverflow.com/questions/21984110/… 我想这就是你需要的。
-
count(*) 对满足您指定条件的行进行计数。 ID 是一个字符串。您省略了 ' ' 字符,因此 SQL 将尝试将 7PB03150SW 转换为 int。这导致了错误
-
谢谢!我错过了''
标签: c# sql sql-server database