【发布时间】:2017-06-29 02:14:51
【问题描述】:
我正在尝试查找不属于已批准公司信息 XML 的所有企业 ID。
我的业务 ID 作为 varchar(255) 数据类型存在于我的业务表中
我的 companyxml 作为 text 数据类型存在于我的 companyinfo 表中
SELECT [bus_id] FROM [dbo].[tbl_businesses]
WHERE [bus_id] NOT IN (SELECT cmp_companyXML FROM tbl_companyinfo WHERE
cmp_approved = 'Approved')
我收到了这个错误
消息 402,第 16 级,状态 1,第 2 行 数据类型 text 和 varchar 在等于运算符中不兼容。
由于我在两个表中都没有任何类似的数据,因此我必须使用子查询。我也在做NOT IN,所以我必须评估每个业务,然后评估我所有已批准的公司 xml,只有在它不存在时才选择它。
【问题讨论】:
-
与您的问题无关,但如果您有 XML 数据,为什么不使用 XML 数据类型?
-
如果
cmp_companyXML是可为空的列,NOT IN是危险的。
标签: c# sql-server tsql