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

查询结果如下图:

原文地址:https://www.cnblogs.com/yaoruozi/p/8652135.html