01算数运算符
数学中我们接触过的基本运算符—加,减,乘,除(+,-,,/)乃至括号()在sql语句同样适用,并且起相同含义
例一根据公式(利润=(售价-进价)* 2+*进价)计算商品的利润
SELECT sale_price,purchase_price
sale_price-purchase_price*2+purchase_price AS price
FROM PRODUCT
ps关于product表的内容见上一篇文章
执行:

不挣钱,老板哭晕在厕所。反手给财务嘤嘤嘤~~
财务错哪了?来看看另一个财务的报表
SELECT sale_price,purchase_price
(sale_price-purchase_price*2)+purchase_price AS price
FROM PRODUCT
执行

赚钱啦,老板开心跳起广场舞
造成两次计算结果差异原因是什么呢?
sql中()可以改变优先级,同时sql算数运算符的优先级和数学中的相同----乘除高于加减,()是上帝
细心的你可能会注意到第四行利润为null,这是为啥呢?
这是因为在sql语句中null像个黑洞,所有包含null的计算,结果必为空
02比较运算符
sql语句中常使用大于等于(>=),小于等于(<=),等于(=)表达比较关系关系
note:>=和<=写成=>或者<=会报错
(小规则:和汉语上的读法顺序一致)
常见的逻辑运算符:
例二从商品中选择售价大于500的产品
SELECT product_name,purchase_price
FROM PRODUCT
WHERE sale_price>500
执行:

SELECT product_name,purchase_price
FROM PRODUCT
WHERE sale_price>'500'

想想看这两种执行代码有什么不同?
执行结果一样好像没什么不同
赐你一副眼镜
对字符串使用要注意500与‘500’含义不同
‘500’是按照字典顺序的
比如按照字典由小到大排序
1
10
11
2
20
21
说白了就是
字母顺序先后排,姓氏相同座一块
细心的你有没有注意到结果中的null呢?
在使用比较运算符时应避免出现null
对于包含null的要先进行判断
选取不是null使用 IS NOT NULL
例三选择进价不为空的商品
SELECT product_name,purchase_price
FROM PRODUCT
WHERE purchase_price IS NOT NULL

选择为空的使用IS NULL
例四选择售价为空的商品
SELECT product_name,purchase_price
FROM PRODUCT
WHERE purchase_price IS NULL


本文探讨SQL Server 2008中的算数运算符,如加减乘除及优先级,通过实例解释了括号的作用以及NULL在计算中的特殊性质。此外,还介绍了比较运算符,如大于、小于、等于,并强调了在处理NULL值时的注意事项。示例展示了如何正确选择和比较商品价格,以避免出现错误结果。
450

被折叠的 条评论
为什么被折叠?



