求一关于数据类型转换的SQL语句

谁是谁的谁 2007-07-20 06:08:39
PACK表如下
part_no F_HI pack_no
A001 10 AA1030
A002 20 AA1020
A003 30 AA2050
A004 11.5 AA1030
A005 22.5 AA2050
A006 44.1 AA2040
A007 10.5 AA20DC0
A008 100.5 CC10DA0

要求right(pack_no,2)小于等F_HI且len(pack_no)=6的数据
该如何写?

我用where cast (right(pack_no,2) as int)-f_hi<=0 and len(pack_no)=6时报错

服务器: 消息 245,级别 16,状态 1,行 2
Syntax error converting the varchar value 'C0' to a column of data type int.
...全文
133 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
谁是谁的谁 2007-07-20
  • 打赏
  • 举报
回复
SORRY,是多谢楼上的paoluo(一天到晚游泳的鱼) (
谁是谁的谁 2007-07-20
  • 打赏
  • 举报
回复
多谢,我想主要原因是在查询的数据中存在不能转换为数字的行.
我想用自联查询应该可以吧,先将满足条件的选择出来当成一个表,再从这表里进行
谢谢楼主,我再试试..
paoluo 2007-07-20
  • 打赏
  • 举报
回复
try

Select * From PACK Where len(pack_no)=6 And IsNumeric(right(pack_no,2)) = 1 And cast (right(pack_no,2) as int)-f_hi<=0
paoluo 2007-07-20
  • 打赏
  • 举报
回复

--如果6位的最後兩位都是數字的話
Select * From(
Select * From PACK Where len(pack_no)=6) A
where cast (right(pack_no,2) as int)-f_hi<=0

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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