Lea*_*ner 2 sql sql-server where-clause
我想知道.以下两个SQL语句之间是否有任何区别?
SQL声明1
Select Id,Code,Name from tbl_student where IsActive=1
And (Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
Run Code Online (Sandbox Code Playgroud)
SQL语句2
Select Id,Code,Name from tbl_student where IsActive=1
And Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%'
Run Code Online (Sandbox Code Playgroud)
我执行了两个语句并同时获得了结果.如果没有区别,那么写条件的更好方法是什么?
谢谢.
这两个条件不同:
where IsActive=1 And
(Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')
where IsActive=1 And Name like '%'+@Searchtxt+'%' OR
Code like '%'+@Searchtxt+'%'
Run Code Online (Sandbox Code Playgroud)
第二个相当于:
where (IsActive=1 And Name like '%'+@Searchtxt+'%') OR
(Code like '%'+@Searchtxt+'%')
Run Code Online (Sandbox Code Playgroud)
也就是说,IsActive = 1只适用于Name比较而不是Code.
道德:根据您的条件使用括号.它们可能并不总是必要的,但在你对布尔表达式感到满意之前,这是最好的方法.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |