AND 和 ORDER BY 有什么用?

what is the use of AND with ORDER BY?

AND 在这样的查询中有什么作用

SELECT *
FROM table
WHERE SaleNo > 200,
ORDER BY EmployeeNo AND SaleNo;

有何不同
SELECT *
FROM table
WHERE SaleNo > 200,
ORDER BY EmployeeNo, SaleNo;

这两个查询实际上 return 一个 table 返回,但我不明白第一个查询的含义。 ORDER BY 通常与竖线和逗号一起使用以进行额外的过滤。 TIA

ORDER BY EmployeeNo AND SaleNo;

上面变成这样:

ORDER BY (EmployeeNo AND SaleNo)

然后变成:

ORDER BY (true/false AND true/false)

然后

ORDER BY (true/false)

因此表达式被转换为 true/false 表达式。

如果2列都是数字类型,那么 0 值 = false,任何非零值 = true

所以,你有

  ORDER BY ( (EmployeeNo <> 0) AND (SaleNo <> 0) )

那么,如果EmplyeeNo和SaleNo都有值呢?

你明白了

  ORDER BY ( (true) AND (True))

  ORDER BY True

因此值为-1。

这意味着如果两个值都有一个数字(不是 0),那么它们将首先出现在列表中,如果两个数字之一为 0 或两者均为 0,则所有其他值将出现在列表中。

因此,要按列排序,然后按其他排序,您可以使用

col1, col2  - as you have.

如果你去

col1 AND col2

那么这是布尔(true/false)表达式,而不是按一列排序,然后上下一列。