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语句只识别不相同的数据,如果两个表中的某一行数据完全一样,执行结果这个数据只显示一遍

    查询结果如下图:

  • 相关阅读:
    redis分布式锁原理
    设置linux源
    linux 设置固定ip 并且解决ping www.baidu.com不通问题
    java内存模型
    Messenger和MVVM中的View Services
    MVVMLight
    MVVMLight
    MvvmLight
    MVVM 事件转命令1
    Mvvm简介
  • 原文地址:https://www.cnblogs.com/yaoruozi/p/8652135.html
Copyright © 2011-2022 走看看