一个查询的问题比较费解的问题?

cool_liucs 2009-08-28 12:54:32
查询数据 条件 货号=32915-000000762 这个的商品
如果全部输入,可以查询
这样输入32915762 ,就不能查询处结果,郁闷!
输入32915762 就直接能查询处结果?
...全文
84 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2009-08-28
  • 打赏
  • 举报
回复
select *
from tb
where
left(货号,charindex('-',货号)-1)+ltrim(cast(right(货号,len(货号)-charindex('-',货号)) as int))='32915762'
feixianxxx 2009-08-28
  • 打赏
  • 举报
回复
declare @s varchar(10)
set @s='32915762'
select *
from tb
where replace(replace(货号,'-',''),'0','')=@s
htl258_Tony 2009-08-28
  • 打赏
  • 举报
回复
都是这样的规则就好处理,没规则就比较难办。
lihan6415151528 2009-08-28
  • 打赏
  • 举报
回复
...不行先replace掉
qdsoftware007 2009-08-28
  • 打赏
  • 举报
回复

--楼主的SQL语句是什么?没有使用模糊查询吧!

like '%32915762%'

cool_liucs 2009-08-28
  • 打赏
  • 举报
回复
我想直接输入 把 -和0 都省略输入查询,例如这个样子 32915762 查询
--小F-- 2009-08-28
  • 打赏
  • 举报
回复
select * from  tb where 货号 like '32915%762%' 
jiangshun 2009-08-28
  • 打赏
  • 举报
回复
where 货号 like '%32915-000000762%'
hui_hui_2007 2009-08-28
  • 打赏
  • 举报
回复
只要有规律有好处理。
hui_hui_2007 2009-08-28
  • 打赏
  • 举报
回复


declare @t table(f1 varchar(15))

insert @t
select '32915-000000762' union all
select '32915-000000763' union all
select '32915-000000764' union all
select '32915-000000765'

declare @str varchar(15)
set @Str='32915762'
set @str=left(@Str,5)+'-'+right('000000000'+substring(@Str,6,15),9)

print @Str

select *
from @t
where f1=@str
xuejiecn 2009-08-28
  • 打赏
  • 举报
回复

where 货号 like '32915%762'

或者将列中的0去掉,如楼上所说。
cool_liucs 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feixianxxx 的回复:]
SQL codedeclare@svarchar(10)set@s='32915762'select*from tbwherereplace(replace(货号,'-',''),'0','')=@s
[/Quote]

这样不行,有的货号是这个样子的 11049-000000808 那他就会把 11049 给你替换成了1149
cool_liucs 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feixianxxx 的回复:]
SQL codedeclare@svarchar(10)set@s='32915762'select*from tbwherereplace(replace(货号,'-',''),'0','')=@s
[/Quote]

这样可以,但是,查询的时间比较长
feixianxxx 2009-08-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 josy 的回复:]
replace 0 显然是不行的,如果后面的数字是702就不行了
[/Quote]
我错了。。
欠考虑。。
华夏小卒 2009-08-28
  • 打赏
  • 举报
回复
用replace 把0替换了,万一里面有的0不用替换,就不对了
所有要看具体要求
百年树人 2009-08-28
  • 打赏
  • 举报
回复
replace 0 显然是不行的,如果后面的数字是702就不行了
caoyuanlang_11 2009-08-28
  • 打赏
  • 举报
回复
这个问题好像不行吧~
加入你的号是32915-100000762
你还不是要全部输入吗?
华夏小卒 2009-08-28
  • 打赏
  • 举报
回复

where 货号 like '32915%762%'

34,588

社区成员

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

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