[Name] LIKE '%'+@pName+'%' 和 @pName LIKE '%'+[Name]+'%'区别

sjiuyuan85 2009-10-26 11:40:33
select * from A
where [Name] LIKE '%'+@pName+'%'

where @pName LIKE '%'+[Name]+'%'
有什么区别吗?
个人一直觉得是一样的 糊涂中……
盼答案
...全文
188 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixianxxx 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 fwacky 的回复:]
SQL codecreatetable Inventory2
([name]varchar(20)
)deletefrom Inventory2insertinto Inventory2select'AADDDTTT'unionallselect'AADDDFFF'unionallselect'AADD'unionallselect'AADEFFD'declare@pNamevarchar(20)¡­
[/Quote]
....
黄_瓜 2009-10-26
  • 打赏
  • 举报
回复
学习
sjiuyuan85 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sql77 的回复:]
引用 16 楼 sjiuyuan85 的回复:
那是不是@pName = [Name] 和 [Name] = @pName就没有区别了?

是等于得看是什么吧,如果是字段那不同的,如果是值没问题
[/Quote]

字段不同是嘛意思?说明下吧
SQL77 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sjiuyuan85 的回复:]
那是不是@pName = [Name] 和 [Name] = @pName就没有区别了?
[/Quote]
是等于得看是什么吧,如果是字段那不同的,如果是值没问题
SQL77 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 guguda2008 的回复:]
举两个字符串作例子好了
ABC
B

'B' LIKE '%ABC%' 不成立
'ABC' LIKE '%B%' 成立
[/Quote]同意鸭子的例子
guguda2008 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sjiuyuan85 的回复:]
那是不是@pName = [Name] 和 [Name] = @pName就没有区别了?
[/Quote]
这个没区别。。。。至少功能上没有
guguda2008 2009-10-26
  • 打赏
  • 举报
回复
举两个字符串作例子好了
ABC
B

'B' LIKE '%ABC%' 不成立
'ABC' LIKE '%B%' 成立
sjiuyuan85 2009-10-26
  • 打赏
  • 举报
回复
那是不是@pName = [Name] 和 [Name] = @pName就没有区别了?
fwacky 2009-10-26
  • 打赏
  • 举报
回复


create table Inventory2
(
[name] varchar(20)
)
delete from Inventory2
insert into Inventory2
select 'AADDDTTT' union all
select 'AADDDFFF' union all
select 'AADD' union all
select 'AADEFFD'

declare @pName varchar(20)
set @pName = 'AADDDFFF'
select * from Inventory2
where [Name] LIKE '%'+@pName+'%'

name
--------------------
AADDDFFF

(1 行受影响)

select * from Inventory2
where @pName LIKE '%'+[Name]+'%'


name
--------------------
AADDDFFF
AADD

(2 行受影响)


sdhdy 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sdhdy 的回复:]
当然有区别。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[/Quote]
不好意思,没仔细看。
查的结果不会一样,但会有相同的部分。
dawugui 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sjiuyuan85 的回复:]
引用 1 楼 dawugui 的回复:
一正一反啊,兄弟.

我知道一正一反呀 可这在功能上有什么区别没?
[/Quote]
--name包含@pname
select * from A where [Name] LIKE '%'+@pName+'%'

--@pname包含name
select * from A where @pName LIKE '%'+[Name]+'%'

如同A到B,B到A.是两个不同的方向.
也就是你所说的两个不同的功能
jwdream2008 2009-10-26
  • 打赏
  • 举报
回复
执行结果可能错的远啊!
jwdream2008 2009-10-26
  • 打赏
  • 举报
回复
学习!
--小F-- 2009-10-26
  • 打赏
  • 举报
回复
一个对[Name]进行模糊查询
一个对@pName 进行模糊查询
SQL77 2009-10-26
  • 打赏
  • 举报
回复
where @pName LIKE '%'+[Name]+'%'

这个要用动态执行
sjiuyuan85 2009-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
一正一反啊,兄弟.
[/Quote]
我知道一正一反呀 可这在功能上有什么区别没?
sdhdy 2009-10-26
  • 打赏
  • 举报
回复
当然有区别。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
dawugui 2009-10-26
  • 打赏
  • 举报
回复
select * from A where [Name] LIKE '%'+@pName+'%'
select * from a where charindex(@pName,[Name]) >0
这两没有区别
华夏小卒 2009-10-26
  • 打赏
  • 举报
回复


而且,第一个是NAME 包含 @pName

第二个是@pName 包含name
dawugui 2009-10-26
  • 打赏
  • 举报
回复
select * from A where [Name] LIKE '%'+@pName+'%'
select * from a where charindex(@pName,[Name])
这两没有区别
加载更多回复(4)

34,590

社区成员

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

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