SQL表达式和条件之间的区别

时间:2017-12-13 14:19:41

标签: sql oracle

根据我的理解,条件是评估为真,假或未知的陈述。但是,我不明白它与SQL表达式的区别。

两者之间有什么区别,可以提供一些例子来说明这种差异?

2 个答案:

答案 0 :(得分:3)

正如你所说:conditions(谓词)返回一个布尔值(在SQL的情况下为三值)。

返回其他类型的东西仍然是表达式:

  • 1+1
  • SUBSTRING(...)

条件(谓词)只是一个返回类型为boolean的表达式。

  • 1 > 0
  • 1 < 0
  • 1 = null

答案 1 :(得分:2)

允许表达式生成RDBMS支持的任何类型的结果。例如,下面的Salary+Bonus是表达式的示例:

SELECT
    Salary
,   Bonus
,   Salary+Bonus AS TotalCompensation
FROM EmployeeCompensation
WHERE EmployeeId=1223

条件是评估为truefalseNULL(未知)的表达式。这些是WHEREHAVING子句中允许的唯一表达式。上面EmployeeId=1223是一个条件的例子。