select × from
(
SELECT A.NAME , (A.NAME / 200) AS Y ,(A.NAME - FLOOR(A.NAME/200)*200) AS X FROM METAATTR A, METAATTRCLS B
WHERE A.MASTERI=B.ERI AND B.CODE='0001'
)C WHERE X>20 ORDER BY Y DESC
这样一个sql 查询语句, 通过x 虚拟字段筛选, y字段排序运行提示这样的错误:
在将 varchar 值 '無壓線' 转换成数据类型 int 时失败。
请高手看看应该怎样修改!
(
SELECT A.NAME , (A.NAME / 200) AS Y ,(A.NAME - FLOOR(A.NAME/200)*200) AS X FROM METAATTR A, METAATTRCLS B
WHERE A.MASTERI=B.ERI AND B.CODE='0001'
)C WHERE X>20 ORDER BY Y DESC
这样一个sql 查询语句, 通过x 虚拟字段筛选, y字段排序运行提示这样的错误:
在将 varchar 值 '無壓線' 转换成数据类型 int 时失败。
请高手看看应该怎样修改!
(
SELECT A.NAME , (A.NAME / 200) AS Y ,(A.NAME - FLOOR(A.NAME/200)*200) AS X FROM METAATTR A, METAATTRCLS B
WHERE A.MASTERI=B.ERI AND B.CODE='0001' and isnumeric(a.name)=1
)C WHERE X>20 ORDER BY Y DESC
WHERE A.MASTERI=B.ERI AND B.CODE='0001'
看一下CODE字段里面的内容
A.NAME是varchar?
A.NAME/200
cast(字段 as int)
select NAME ,Y ,X from
(
SELECT A.NAME , (A.NAME / 200) AS Y ,(A.NAME - FLOOR(A.NAME/200)*200) AS X FROM METAATTR A, METAATTRCLS B
WHERE A.MASTERI=B.ERI AND B.CODE='0001'
)C WHERE CAST(X AS VARchar(10)) >'20' ORDER BY Y DESC
这样是报同样的错