sql 计算字段问题

wummks 2009-08-12 11:02:18
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 时失败。
请高手看看应该怎样修改!
...全文
90 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wummks 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wufeng4552 的回复:]
SQL codeselect ×from
(SELECT A.NAME , (A.NAME/200)AS Y ,(A.NAME-FLOOR(A.NAME/200)*200)AS XFROM METAATTR A, METAATTRCLS BWHERE A.MASTERI=B.ERIAND B.CODE='0001'andisnumeric(a.name)=1
)CWHERE X>20ORDE¡­
[/Quote]


可以了!
谢谢!
华夏小卒 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wummks 的回复:]
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


这样是报同样的错
[/Quote]

兄弟,感觉你真累。。。。
wummks 2009-08-12
  • 打赏
  • 举报
回复

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


这样是报同样的错
华夏小卒 2009-08-12
  • 打赏
  • 举报
回复
没有东西。所有人都在蒙着眼睛瞎摸。。。。。。。。。。
wummks 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 soft_wsx 的回复:]
GX你
[/Quote]

晕死!
我要的是x筛选啊!
华夏小卒 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wummks 的回复:]
引用 5 楼 fredrickhu 的回复:
SQL code转换下cast(字段asint)


试过了 ,不行
[/Quote]

把表结构,记录,要求列出来很快就好了。
rucypli 2009-08-12
  • 打赏
  • 举报
回复
'無壓線'

这个值也能转化成整型?
wummks 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]
SQL code转换下cast(字段asint)
[/Quote]

试过了 ,不行
soft_wsx 2009-08-12
  • 打赏
  • 举报
回复
GX你
wummks 2009-08-12
  • 打赏
  • 举报
回复
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' ORDER BY Y DESC

这样结果是OK的!
华夏小卒 2009-08-12
  • 打赏
  • 举报
回复
好像换成大写X就编译通过。。。。。。。。。
--小F-- 2009-08-12
  • 打赏
  • 举报
回复
转换下
cast(字段 as int)
sdhdy 2009-08-12
  • 打赏
  • 举报
回复
--
A.NAME是varchar?
A.NAME/200
soft_wsx 2009-08-12
  • 打赏
  • 举报
回复

WHERE A.MASTERI=B.ERI AND B.CODE='0001'
看一下CODE字段里面的内容
华夏小卒 2009-08-12
  • 打赏
  • 举报
回复
通过x 虚拟字段筛选?

什么东西?
水族杰纶 2009-08-12
  • 打赏
  • 举报
回复
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' and isnumeric(a.name)=1
)C WHERE X>20 ORDER BY Y DESC

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧