SQL 中的 And (Condition1 or Condition2) 与 And Condition1 or Condition2 之间有什么区别吗

Is there any difference between And (Condition1 or Condition2) vs And Condition1 or Condition2 in SQL

我想知道。以下两个 SQL 语句之间有什么区别吗?

SQL 语句 1

Select Id,Code,Name from tbl_student where IsActive=1 
       And (Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')

SQL 声明 2

Select Id,Code,Name from tbl_student where IsActive=1 
       And Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%'

我同时执行了这两个语句并得到了结果。如果没有区别那么condition的写法怎么写比较好?

谢谢。

这两个条件不同:

where IsActive=1 And
      (Name like '%'+@Searchtxt+'%' OR Code like '%'+@Searchtxt+'%')

where IsActive=1 And Name like '%'+@Searchtxt+'%' OR
      Code like '%'+@Searchtxt+'%'

第二个相当于:

where (IsActive=1 And Name like '%'+@Searchtxt+'%') OR
      (Code like '%'+@Searchtxt+'%')

也就是说,IsActive = 1 仅适用于 Name 比较而不适用于 Code

道德:使用括号表示您的条件。它们可能并不总是必需的,但在您真正熟悉布尔表达式之前,这是最好的方法。