前言
本文章是SQL Cookbook中文版 (莫利纳罗 著) 的读书笔记,本文章将书中提及到的知识用代码整合在一起并进行分析。
完整代码
以下是整段代码
select top 3 name+'是'+m+'的' as msg,
case when m ='男' then 'ok'
else 'no'
end as status
from(
select top 5 学号 as id,成绩 as grade,性别 as m,姓名 as name
from student
order by newid()
) X
where id>0
分段代码分析
select top 3 name+'是'+m+'的' as msg,
case when m ='男' then 'ok'
else 'no'
end as status
- 单从代码上看
top x
指的是选出数据库的前三项,与后面的order by newid()
就是随机选出数据库的三项 name+'是'+m+'的' as msg
是将这段序列合并并创建一个名为msg
的新序列case
和C\C++中的switch类似,就是进行多重条件判断,如果条件结果为真,那么就执行then
后面的语句end as status
创建了一个名为 “status” 的新列,根据 “m” 的值进行判断,如果 “m” 为 ‘男’,则 “status” 的值为 ‘ok’,否则为 ‘no’。我们在使用case的时候可以用end
来结束语句,并将case
的结果返回到新创建的列status
中
from(
select top 5 学号 as id,成绩 as grade,性别 as m,姓名 as name
from student
order by newid()
) X
from导入
from
类似于python中的导入模块,这里是导入数据库,我们可以直接导入数据库from test
,也可以如上文所示将数据库进行修改再导入。
注意:
上文代码中的修改并不是真正意义上的修改