• sql sever 基础 练习题


    --1. 求半径2米,高3米的圆柱体体积。

    1 declare r @hight float,@r float,@ratio float ,@ v float --声明变量
    2 set @hight=3    --赋值
    3 set @r=2
    4 set @ratio =3.14
    5 set @v=@hight*@r*@r*@ratio
    6 print '体积为'+convert(varchar(20),@v)+'立方米' --输出的时候因为定义为浮点 无法一起输出 所以用convert改变数据类型

    --2. 求字符串‘abcdefg’的长度。

    1 select len('abcdefg')  --求长度用len

    --3. 显示pubs数据库中所有作家的au_lname的开头两个字母,大写显示。(字符函数)

    1 select  upper  (left(au_lname,2)) from authors   转化为大写用upper()

    --4. 取字符串‘abcdefg’的第2到第5个字母。(字符函数)

    1 select substring ('abcdefg',2,5)

    ----5. 计算2001年9月11日到今天已经多少天了。(日期函数)

    1 select datediff (DAY,'2001-09-11' , getdate()) as ''
    2 select datediff  (month,'2001-09-11' , getdate()) as''
    3 select datediff (year,'2001-09-1', getdate()) as ''
    select datetime 指定日期中的部分字符串 因为今天做练习 我个废物游标循环 添加年代。。搞了2个多小时

    --6.     ,找出编号为BU7832的记录,如果类型为business 显示商业类型。(if语句

    1 declare @type   varchar(20)
    2 select @type=type from titles where title_id='BU7832'
    3 if(@type='business')
    4      begin
    5         print '商业类型为: business'
    6         select *form titles where title_id='BU7832'
    7     end

    --7.     查询pubs数据库publishers表,获取出版商名称和所在的国家,如果国家名为USA Germany France分别显示其对应中文的形式使用case语句)

    1 SELECT country, 国家 = CASE  
    2                   WHEN country = 'USA' THEN '美国'
    3                   WHEN country = 'Germany' THEN '德国'
    4                   WHEN country = 'France' THEN '法国'
    5                ElSE ''
    6 
    7               END
    8       FROM publishers

    --8、    查询pubs数据库的employee表,如果表中雇员的平均服务时间长于10年,则打印信息:‘我们的雇员都很忠诚:)’,否则打印信息:‘我们的雇员经常跳槽:(’。

     1 select datediff(year,hrie_date,getday())from employee as 'year'
     2 into  years
     3 from employee
     4 declare @time =avg(year) from years
     5 if(@time>10)
     6     begin
     7         print '我们的雇员很忠诚'
     8     end
     9 else
    10     begin
    11         print '我们的雇员经常跳槽'
    12     end
    13 --想了下用别的写 多此一举啊

    --9. 查询pubs数据库中employee表,显示相关雇员信息(id,姓名,服务时间等),其中增加一个‘雇员类型’列:如果雇佣时间长于18年,则显示他为‘新雇员’,否则显示他为‘老雇员’

    1 select emp_id,fname,lname,hrie_date,
    2     'year'= case
    3         when datediff(year,hrie_date,gettime())>19
    4          then '老雇员'
    5         else '新雇员'
    6         end
    7 from employee

    --只看题目不看逻辑 神他妈老员工

  • 相关阅读:
    Chrome浏览器网页截全屏算法以及实现
    去除scons构建动态库的前缀lib
    Javascript的继承
    win7 VS2008 ffmpeg release 版本崩溃 0x00905a4d 处未处理的异常
    shell脚本获取随机数random
    iOS navigationbar添加实现
    TableView中改变Button按钮状态
    将TableView的中的Label和Cell行数绑定
    build diff: /../Podfile.lock: No such file or directory
    initramfs-tools ... update-initramfs: Generating /boot/initrd.img-3.14-kali1-amd64 mktemp: failed to create directory via template `/var/tmp/mki
  • 原文地址:https://www.cnblogs.com/cxh1995/p/7096081.html
Copyright © 2020-2023  润新知