SELECT product_name, sale_price,
sale_price * 2 AS "sale_price_x2"
FROM Product;
运算是以行为单位执行的
法则2-6
SELECT子句中可以使用常数或者表达式
所有包含NULL的计算,结果肯定是NULL
通常情况下,类似5/0这样除数为0会发生错误,只有NULL除以0时不会发生错误,并且结果还是NULL
FROM子句真的有必要
只使用SELECT子句进行计算也是可以的
SELECT (100 + 200) * 3 AS calculation;
实际上,通过执行SELECT语句来代替计算器的情况基本上是不存在的。不过在极少数情况下,还是可以通过使用没有FROM子句的SELECT语句来实现某种业务。例如,不管内容是什么,只希望得到一行临时数据的情况。
但也有像Oracle这样不允许省略SELECT语句中的FROM子句的RDBMS.
在Oracle中,FROM子句是必须的,这种情况下可以使用DUAL这个临时表。另外,DB2中可以只用SYSIBM.SYSDUMMY1这个临时表。
比较运算符
=等于
<>不等于
有很多RDBMS可以使用比较运算符"!="来实现不等于功能。但这是限于不被标准SQL所承认的特定SQL,出于安全考虑,最好不要使用
法则2-7
一定要让不等号在左,等号在右
判断是否为NULL,需要使用IS NULL或者IS NOT NULL运算符
法则2-8
字符串类型的数据原则上按照字典顺序进行排序,不能与数字的大小顺序混淆。
法则2-9
希望选取NULL记录时,需要在条件表达式中国使用IS NULL运算符。希望选取不是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。