select * from table where price > '100'这样就不会错,但是会连大于100的也查出来了。。
解决方案 »
- 中文做字段名,是不是用方括号括起来,就永远不会出问题了?
- 初学者请教一个触发问题
- 请大家谈谈对这段话的理解(这里的光标是游标的意思吧?)
- EXECUTE 后的事务计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句
- 无限分级 分类上移下移 存储过程
- 请 zjcxc(邹建) 兄 接分 ,感谢你的回答
- 相同的SQL语句在不同的机器上有的报错,有的没错。是哪里的配置原因?
- 创建odbc链接报错!!程序有时候运行正常有时错误
- 为什么我的sql server 2000的企业管理器不能使用了。
- 求救,我遇到大麻烦了,大哥大姐,帮帮我吧。
- sql多表联合查询,并将结果集汇总!
- 关于自连接列运算查询的问题
create function getnewstr
(@oldstr varchar(100))
returns varchar(100)
as
begin
declare @i int
set @i = 1
while @i <= len(@oldstr)
if substring(@oldstr, @i, 1) like('[^0-9]')
set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')
else
set @i = @i +1
return @oldstr
end
goselect * from tb where price like ('%[^0-9]%') and cast(dbo.getnewstr(price) as int) > 60
你这个把'100'当字符串了。。'60..' > '100'的呀建议你自己写个函数,然后把'60..'转成你要的int型
create function getnewstr
(@oldstr varchar(100))
returns varchar(100)
as
begin
declare @i int
set @i = 1
while @i <= len(@oldstr)
if substring(@oldstr, @i, 1) like('[^0-9]')
set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '')
else
set @i = @i +1
return @oldstr
end
go select * from tb where price like ('%[^0-9]%') and cast(dbo.getnewstr(price) as int) > 60
对了...select * from tb where price not like ('%[^0-9]%') and cast(dbo.getnewstr(price) as int) > 60
这样就完全对了.
谢谢...
现在结不了贴...