日期:2014-05-17  浏览次数:20804 次

30元解决一句代码支付宝
怎么让示例1能成立不提示下面的错误
错误:不能比较或排序 text、ntext 和 image 数据类型,除非使用 is null 或 like 运算符
如何对比以下的
xh_id=4(数字型)
pingtai_id_2="2,4,6,8,10,17"(文本型)
要达到的效果
读取数据的时候:where xh_id in (2,4,6,8,10,17) 运行结果是 数据存在

我们写读取数据代码的时候是大家都知道只能数字型和数字型进行对比大家有什么办法把pingtai_id_2这列变成一组一组逗号隔开的数字型进行和xh_id进行对比
要达到的效果是示例2那样不会提示错误:不能比较或排序 text、ntext 和 image 数据类型,除非使用 is null 或 like 运算符
示例1:where "&xh_id&" in (pingtai_id_2) " 
示例2:where xh_id in (2,4,6,8,10,17)

问题补充:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
xh_id是数字型
pingtai_id_2是文本型
它们对比的时候就出错了还有我不想用like这样不准确
我想用下面的方法示例1这种方法可是也是错误

【Microsoft OLE DB Provider for SQL Server (0x80040E14)
不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
】示例2这样就不会错,可是pingtai_id_2的数据就是等于2,4,6,8,10,17写出示例1可是就出错,怎么写才不会出错?
示例1:where xh_id in (pingtai_id_2) " 
示例2:where xh_id in (2,4,6,8,10,17)

追问where pingtai_id_2 like '%xh_id%这样的话比如
pingtai_id_2=“2,4,6,8,10,17”
xh_id=7
like会把17拆开这样xh_id=7的时候也会判断存在,这样不准确,能不能用 where xh_id in (2,4,6,8,10,17) 这样不出错误【Microsoft OLE DB Provider for SQL Server (0x80040E14)
不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。

我想他们以逗号隔开一组一组的判断

------解决方案--------------------
两边都加逗号,就可以LIKE比较了
pingtai_id_2是字段名的话:
" .... where ',' + pingtai_id_2 + ',' LIKE '%,' + CAST(xh_id AS varchar) + ',%'"