连接符。数值运算和函数

1、基本用表:

bookitem表

course表:

 

2、连接符(+)

eg:

 

结果:

PS:给表起别名和给列取别名不多

eg:给表取别名

 

三点注意事项:

  • 连接运算符只能用于连接两种数据类型相同或者相似的列,如果数据类型不同时,需要用cast进行数据类型转换。例如下面的代码:select tname + sal,age from teacher 运行时会报错,这是因为tname是varcher类型,而age是int类型,不能进行直接连接。正确的写法是:select tname +cast(sal as varchar(5)),age from teacher
  • 使用连接运算符时候,要注意,如果两列或者多列进行连接时候,只要有一列值为null,则连接的结果为null。例如:

 

结果:

由记过可知,sal为null的行连接的结果为null,tname的信息也没有了。这一点要注意。

  • 可以给表和列取别名,但是表的别名可以用于查询语句的任何子句,而列的别名只可以order by子句, 用于其他子句要出错。这和select语句的执行顺序相关。select 语句的执行顺序参见下图。

由此图可知只有order by子句在select子句之后,所以如果在select子句中给列取别名的话只有order by 子句知道,其他子句不知道列的别名的存在,因此在别的子句中使用列的别名会出错。而给表取别名是在from 子句,from子句在所有其他子句之前执行,因此可以被任何其他子句使用。例如:

 

执行这条查询会报错。

 

3、数值运算

eg1:从表bookitem中查询8折优惠后单价仍然高于30元的书目名称,数量及优惠后的单价


eg2:case的用法

从course表中查询所有课程的课程名,学时信息,并要求根据学时信息计算出每门课程的学分。其中学时高于40学分为5个学分,30~40之间为4个学分,20~30之间为3个学分,少于20学分为2个学分

 

case的用法实际上有点类似编程中的 IF...ELSE IF...ELSE用法

执行结果:

 

eg3:cast的用法,参见前面的例子

 

4、函数(略)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值