在SQL中理解AND IF .. = 0

时间:2016-07-05 16:45:00

标签: sql

我在SQL中运行一个脚本,并试图通过逻辑。这是一般结构:

SELECT
...
FROM
...
WHERE
...
AND IF (order belongs to x,y,z, 1, IF (order was booked before this data, 1,0)) = 0

在AND IF的最后一行... = 0意味着什么?

1 个答案:

答案 0 :(得分:0)

它表示嵌套if语句的false值是查询所需的结果

IF (order belongs to x,y,z, - 如果为true,则值为1,如果为false,则计算嵌套的if语句。

 IF (order was booked before this data

, - 如果这是真的那么值将是1。如果为false,则值为0

最后评估IF语句的结果,看它们是= 0

基本上它是说订单属于x,y,z然后不包括记录。此外,如果订单在此日期之前预订,则不包括记录。

以更标准的方式表示逻辑。

SELECT *
FROM
   TableName
WHERE
  Order NOT IN (x,y,z)
  AND OrderDate >= somedate