sql中的一些通用函数

Posted helloworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中的一些通用函数相关的知识,希望对你有一定的参考价值。

1. SQL中使用case,when,then

SELECT 
CASE TYPE 
    WHEN 1 THEN 正常 
    WHEN 2 THEN 密码错误
ELSE 不正常 END 状态
FROM tbl_user 

或者

SELECT 
CASE 
    WHEN TYPE <> 1 THEN 正常 
    WHEN TYPE = 1 THEN 密码错误 END 状态
FROM tbl_user 

需要注意的是: 最后必须有end,可以有else也可以没有。

2. UNION和UNION ALL

在写SQL的时候。偶尔会用到两个表的数据结合在一起返回的,就需要用到UNION 和 UNION ALL,有的时候有些数据的存储可能涉及到分库分表,查询的时候,可能需要查询所有的分表,这个时候,也需要用到UNION或者UNION AL。

union操作符:用于合并两个或多个SELECT语句的结果集,这里需要注意的是:UNION内部的SELECT语句必须拥有相同数量的列,列也必须拥有相似的数据类型,同时,每条SELECT语句中列的顺序必须相同。

并且需要注意的是:UNION和UNION ALL连接的语句,算是一个sql,只能有一个order by 语句,如果你需要两个sql都进行排序之后合并在一起,就需要使用子查询,将查询的语句再次查询一遍,然后进行合并!!

SELECT name FROM user UNION  SELECT name FROM user1 //得到的结果就是:分别从user表和user1表中查询name字段,然后合并到一起。

union all :如果需要去重,那么就使用union all

SELECT * FROM 
(SELECT top 1 left(convert(varchar(100),RECEIVE_TIME,108 ),5) receiveTime, 0 restoreTime,unit_code,unit_name
    FROM T_FILE_RECEIVE_RECORD WHERE UNIT_CODE = 123123 and convert(char(100),RECEIVE_TIME,23)=2018-10-06 ORDER BY RECEIVE_TIME DESC 
) table1 
UNION ALL 
SELECT * FROM 
(SELECT top 1  0 receiveTime, left(convert(varchar(100),RESTORE_TIME,108 ),5) restoreTime,unit_code,unit_name
FROM T_FILE_RESTORE_RECORD WHERE UNIT_CODE = 123123 and convert(char(100),restore_time,23)=2018-10-06 ORDER BY restore_time DESC
) table2

 

以上是关于sql中的一些通用函数的主要内容,如果未能解决你的问题,请参考以下文章

scala编程——函数和闭包

JDBC的一些简单通用代码

缺少 SQL SERVER 2014 代码片段

控制 spark-sql 和数据帧中的字段可空性

linq 等效于通用函数的'select *' sql?

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段