zoukankan      html  css  js  c++  java
  • 一些简单而不失尴尬的SQL

    (一)今天需要在打印页面显示系统录入的时间,时间需要格式化一下,格式化成(2018-03-26)的样子,然后就写了个SQL,照着网上的学习,SQL提供了一个styleID,用来标识每种不同的时间格式,先上我的SQL

     1 SELECT APP,
     2         APPDEPT,
     3         CONVERT(varchar(100),GETDATE(),23) as DININGTIME,
     4         DININGPLACE,
     5         VISITORSCOUNT,
     6         ACCOMPANYINGCOUNT,
     7         DININGSTANDARD,
     8         a.REMARK
     9     FROM LC_ENTERTAINMENTEXPENSE_DY a,LC_ReimbursementInfo_DY b
    10     WHERE b.EXGUID = a.REV_CID and b.REV_CID

    标红的那一段,23就是styleID,利用convert()函数格式化,然而很尴尬,没有注意到GETDATE(),使得打印页面显示的都是当前时间,然后修改了一下就好了
     1 SELECT APP,
     2         APPDEPT,
     3         CONVERT(varchar(100),DININGTIME,23) as DININGTIME,
     4         DININGPLACE,
     5         VISITORSCOUNT,
     6         ACCOMPANYINGCOUNT,
     7         DININGSTANDARD,
     8         a.REMARK
     9     FROM LC_ENTERTAINMENTEXPENSE_DY a,LC_ReimbursementInfo_DY b
    10     WHERE b.EXGUID = a.REV_CID and b.REV_CID

    (二) 一个三个表的联合查询,使用inner join

    
    
    1 select *
    2 from T_USER e 
    3 inner join T_JOB_LINK t on e.USER_CODE = t.USER_CODE
    4 inner join T_JOb s on t.JOB_CID = s.CID
    5 where t.JOB_CID = '40005177' 

    (三) 各种join

    先创建两个表,一个USA,一个Chinese

                                                         

    (1)inner join

    1 -----inner join练习
    2 SELECT * FROM dbo.Chinese
    3 INNER JOIN dbo.USA
    4 ON dbo.Chinese.C_UID = dbo.USA.U_UID

    运行结果如下:

    (2)left join :以左表为基准,左表所有的行都会显示,即使右表中没有与之对应的数据

    1 -----left join练习(左表所有的行都会显示,即使右表没有)
    2 SELECT * FROM dbo.Chinese
    3 left JOIN dbo.USA
    4 ON dbo.Chinese.C_Uname = dbo.USA.U_Uname

    运行结果如下所示:

    (3)right join:以右表为基准,右表所有的行都会显示,即使左表中没有与之对应的数据

    1 -----right join练习(右表所有的行都会显示,即使左表没有)
    2 SELECT * FROM dbo.Chinese
    3 right JOIN dbo.USA
    4 ON dbo.Chinese.C_Uname = dbo.USA.U_Uname

    执行结果如下图所示:

    (4)full  join :所有的数据行都会显示出来,即使两个表没有对应关系的数据,但是两个表的数据都会显示完全

    -----full join练习()
    SELECT * FROM dbo.Chinese
    full JOIN dbo.USA
    ON dbo.Chinese.C_Uname = dbo.USA.U_Uname

    执行结果如下图所示:

    (四)Union语句,用于连接两个SQL语句,单使用Union时,当两个SQL语句查询的结果有两条一模一样的数据时,查询结果只显示一遍

    1 SELECT * FROM dbo.Chinese
    2 UNION
    3 SELECT * FROM dbo.USA
    4 
    5 ---union语句只识别不相同的数据,如果两个表中的某一行数据完全一样,执行结果这个数据只显示一遍

    查询结果如下图:

  • 相关阅读:
    Tensorflow揭秘
    今日Q群:QQ群众群友反馈问题的归纳总结
    新闻:小娜来了 微软语音助手正式入华
    原创:如何统计并过滤行中单元格有颜色的值
    转载:案例用Excel对会员客户交易数据进行RFM分析
    转载:推荐给每个“数据分析师”看的PPT——关于开会的那点事
    原创:XXX公司-基于SAP的库存管理系统解决方案
    原创:如何实现在Excel通过循环语句设置指定行的格式
    原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板
    原创:《Excel在零售及电商行业数据化管理中的应用》之“什么是数据化管理?
  • 原文地址:https://www.cnblogs.com/yaoruozi/p/8652135.html
Copyright © 2011-2022 走看看