Like fName 'A%' 与 Like fName 'A' + '%'的区别!

adminis 2005-10-04 11:12:08
手头上有一查询两者查询结果不一样,百思不得其解!

...全文
260 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
joist 2005-12-03
  • 打赏
  • 举报
回复
原来上面的语句应该指定Varchar的长度
declare @term varchar(2)
joist 2005-12-03
  • 打赏
  • 举报
回复
declare @term varchar
set @term='08'
select * from tBill where BillID like @term+'%'

select * from tBill where BillID like '08%'
不一样啊
guofeng2008 2005-10-06
  • 打赏
  • 举报
回复
应该是一样的!!
MorningTea 2005-10-06
  • 打赏
  • 举报
回复
那把表的结构和数据贴出来,还有你2种不同的结果
adminis 2005-10-06
  • 打赏
  • 举报
回复
记录不带%

zouqiang122 2005-10-06
  • 打赏
  • 举报
回复
是一样的啊!!!
MorningTea 2005-10-05
  • 打赏
  • 举报
回复
楼主需要查询带有%的纪录吗?

纪录是否就有%号的纪录?
vivianfdlpw 2005-10-05
  • 打赏
  • 举报
回复
应该是一样的

对"%"的匹配应该用escape或"[]":
fNumber like 'xs' + '%%' escape '%'
or
fNumber like 'xs' + '[%]'
adminis 2005-10-05
  • 打赏
  • 举报
回复
Select @dYS = Sum(IsNull(b.FAmount,0)) -- 期初应收 'fp'销售发票
from
icsale a, t_RP_Contact b
where FCustID = @fItemID
And (Convert(Varchar(8), a.FDate, 112) < @BeginDate )
and a.FBillNo = b.FNumber
and
(
(fNumber like 'fp' + '%')
Or
(fNumber like 'zsefp' + '%')
Or
(fNumber like 'xs' + '%') --此处如果改成 like 'xs%' 两者查询的结果不一样
)
and not (fNumber like 'xskd' + '%')
and b.fStatus <> 16
turenjie 2005-10-04
  • 打赏
  • 举报
回复
楼主,你不讲出来,我们才是百思不得其解!
iwl 2005-10-04
  • 打赏
  • 举报
回复
应该没有任何区别。把你的数据贴出来看一下。
cbz0660 2005-10-04
  • 打赏
  • 举报
回复
關注中
MorningTea 2005-10-04
  • 打赏
  • 举报
回复
adminis (古董) ,你给我们描述如何不一样,理论上讲Like fName 'A%' 等价于 Like fName 'A'+ '%'

查询出来也是一样的呀!
whohu 2005-10-04
  • 打赏
  • 举报
回复
经过测试是一样的
lisiyong 2005-10-04
  • 打赏
  • 举报
回复
个人认为:

Like fName 'A%' :模糊查询字符格式为: A+任意字符 的字段


与 Like fName 'A' + '%' : 查询为 A% 的字段

34,590

社区成员

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

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