我想知道
之间有什么区别INNER JOIN TB_PACKAGE AS B
ON (A.CdPackage = B.CdPackage)
和
INNER JOIN TB_PACKAGE AS B
ON A.CdPackage = B.CdPackage
当我应该使用括号时,我需要某种解释。
这是整个查询,它是一个存储过程:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [DB].[SP_UP_NOTES]
@COD_ROTE NUMERIC(10)
,@COD_STATS NUMERIC(10)
AS
BEGIN
UPDATE C
SET C.IdStatus = @COD_STATS
FROM DB.TB_NOTES AS A
INNER JOIN OPMDM.TB_PACKAGE AS B
ON (A.CdPackage= B.CdPackage)
INNER JOIN OPMDM.TB_NOTES AS C
ON (A.CdNotes = c.CdNotes)
WHERE B.STATS = @COD_ROTE;
END
答案 0 :(得分:2)
完全没有区别。您需要括号的唯一时间是您需要执行需要强制执行AND / OR评估顺序的复杂联接。
答案 1 :(得分:0)
在您的上述代码中,代码有和没有括号之间没有区别。但在某些情况下,使用括号可能会产生差异
例如如果您正在使用AND和OR运算符
SELECT
*
FROM YourTable
WHERE
(
id > 10 and Name Like 'A%'
)
or
(
Id < 10 and name Like '%A'
)
在上述情况下使用括号产生一些效果,因为我想获得符合条件的记录id > 10 and Name Like 'A%'
或Id < 10 and name Like '%A'
这里我想分组2 AND条件并生成满足任一条件的记录列表,所以我使用括号