SQL 查询子句在哪里
SQL QUERY CLAUS WHERE
我有这个 where 子句
WHERE (ACCDAT_0 >= '2020-01-01 00:00:00.000')and STA_0='3'
and
(NUM_0 LIKE '%FTC%') OR (NUM_0 LIKE '%NCC%') OR (NUM_0 LIKE '%DCF%')
关键是如果 STA_0='1'
出现在查询中,因为它像 NCC,它可能会出现所有 NCC,除了标志为 1 的那些?
这确实是一条评论,但它太大了,无法放入评论中space...对我上面的评论的详细说明。
“OR”是低优先级运算符,这意味着它在所有“AND”之后计算。这意味着您的查询正在执行此操作:
WHERE
(ACCDAT_0 >= '2020-01-01 00:00:00.000' and
STA_0='3' and
NUM_0 LIKE '%FTC%') OR NUM_0 LIKE '%NCC%' OR NUM_0 LIKE '%DCF%'
意味着如果 NUM_0 类似于 NCC 或 DCF,则前两个条件将被忽略。这可能不是你的意思,但你就是这么说的。
你可能是这个意思:
WHERE
ACCDAT_0 >= '2020-01-01 00:00:00.000' and
STA_0='3' and
(NUM_0 LIKE '%FTC%' OR NUM_0 LIKE '%NCC%' OR NUM_0 LIKE '%DCF%')
更大的教训是......如果你混合使用 AND 和 OR,一定要使用括号,这样它就完全符合你的意思。
我有这个 where 子句
WHERE (ACCDAT_0 >= '2020-01-01 00:00:00.000')and STA_0='3'
and
(NUM_0 LIKE '%FTC%') OR (NUM_0 LIKE '%NCC%') OR (NUM_0 LIKE '%DCF%')
关键是如果 STA_0='1'
出现在查询中,因为它像 NCC,它可能会出现所有 NCC,除了标志为 1 的那些?
这确实是一条评论,但它太大了,无法放入评论中space...对我上面的评论的详细说明。
“OR”是低优先级运算符,这意味着它在所有“AND”之后计算。这意味着您的查询正在执行此操作:
WHERE
(ACCDAT_0 >= '2020-01-01 00:00:00.000' and
STA_0='3' and
NUM_0 LIKE '%FTC%') OR NUM_0 LIKE '%NCC%' OR NUM_0 LIKE '%DCF%'
意味着如果 NUM_0 类似于 NCC 或 DCF,则前两个条件将被忽略。这可能不是你的意思,但你就是这么说的。
你可能是这个意思:
WHERE
ACCDAT_0 >= '2020-01-01 00:00:00.000' and
STA_0='3' and
(NUM_0 LIKE '%FTC%' OR NUM_0 LIKE '%NCC%' OR NUM_0 LIKE '%DCF%')
更大的教训是......如果你混合使用 AND 和 OR,一定要使用括号,这样它就完全符合你的意思。