1、使用mysql的union all可以同时查询出所有自己想要查询数据表的数据量。

 select 'user' as tablename, count(*) from user
union all select 'teacher' as tablename, count(*) from teacher
union all select 'person' as tablename, count(*) from person
union all select 'student' as tablename, count(*) from student
order by tablename

2、使用mysql的union all可以同时查询出所有自己想要查询数据表的数据量。添加上限制条件进行查询。

 select 'user' as tablename, count(*) from user                                         where update_time>'2018-10-09'
union all select 'teacher' as tablename, count(*) from teacher where update_time>'2018-10-09'
union all select 'person' as tablename, count(*) from person where update_time>'2018-10-09'
union all select 'student' as tablename, count(*) from student where update_time>'2018-10-09'
order by tablename

3、使用Postgresql或者Greenplum的union all可以同时查询出所有自己想要查询数据表的数据量。添加上限制条件进行查询。

 select 'user' as tablename, count(*) from user                                          where update_time>to_date('2018-10-09 01', 'yyyy-mm-dd hh24')
union all select 'teacher' as tablename, count(*) from teacher where update_time>to_date('2018-10-09 01', 'yyyy-mm-dd hh24')
union all select 'person' as tablename, count(*) from person where update_time>to_date('2018-10-09 01', 'yyyy-mm-dd hh24')
union all select 'student' as tablename, count(*) from student where update_time>to_date('2018-10-09 01', 'yyyy-mm-dd hh24')
order by tablename

4、在Mysql数据库中,如果某个字段是换行的,如何去掉换行的字段,然后正常查询出来。
    注意:char(10)换行键、char(13)回车键。
    4.1、查询出多个数据表某条记录可能含有换行符的记录。
        CONCAT()函数用于将多个字符串连接成一个字符串。

 select * from user where name like CONCAT("%",char(),"%")
union all select * from teacher where name like CONCAT("%",char(),"%")
union all select * from person where name like CONCAT("%",char(),"%")
union all select * from student where name like CONCAT("%",char(),"%");

4.1、然后将换行和回车进行替换,将换行和回车换成''。这样做就将回车和换行替换完成。
        replace(object,search,replace),把object中出现search的全部替换为replace。

 select REPLACE(REPLACE(name, char(), ''), char(), '') as name from user where name like CONCAT("%",char(),"%")
union all select REPLACE(REPLACE(name, char(), ''), char(), '') as name from student where name like CONCAT("%",char(),"%")
union all select REPLACE(REPLACE(name, char(), ''), char(), '') as name from person where name like CONCAT("%",char(),"%")
union all select REPLACE(REPLACE(name, char(), ''), char(), '') as name from student where name like CONCAT("%",char(),"%");

4.3、可以将回车符和换行符转换为特殊的字符。
        -- 将char(10)换行键,char(13)回车键换成@#r;和@#n;

  select REPLACE(REPLACE(name, char(), '@#r;'), char(), '@#n;') as name from user where name like CONCAT("%",char(),"%")

如果需要有需要,可以将特殊的字符再转换为回车符和换行符。
        -- 将@#r;和@#换成nchar(10)换行键,char(13)回车键;

  select REPLACE(REPLACE(name, '@#r;', char()), '@#n;', char()) as name from user where name like CONCAT("%",char(),"%")

5、    查询出最大时间,可以根据这个来进行批次插入数据和批次导出数据。
    5.1、Postgresql和Greenplum的用法:
        COALESCE()的用法,如果第一个参数不为null,咋返回第一个参数,否则返回第二个参数。

 select '数据表名称' as table_name,  as part, COALESCE(max(update_time), now()) as next_time from schema.数据表名称

5.2、Mysql的用法:
        ifnull()的用法,如果第一个参数不为null,咋返回第一个参数,否则返回第二个参数。

 select 'user' as table_name,ifnull(max(update_time),now()) as update_time from user;

6、MYSQL或者Postgresql和Greenplum的Case...When的用法基本相同。
    6.1、Case expr when v1 then r1 when v2 then r2 else rn end。该函数表示,如果expr值等于某个vn,则返回对应位置then后面的结果,如果所有值都不相等,则返回else后面的rn。

  select case  when  then 'one' when  then 'two' else 'more' end;

6.2、case when v1 then r1 when v2 then r2 else rn end。该函数表示,某个vn为true的时候,则返回对应位置then后面的结果,如果所有值都不相等,则返回else后面的rn。

  select case when  <  then 'true' when  >  then 'false' else 'more' end;

7、查询最大批次号,如果不存在根据规则生成一个批次号。
    Postgresql和Greenplum使用to_number()函数来转换成整数、to_char()将数字转为字符串。mysql无此函数。
    完整的例子如下所示:

 select to_char(to_number(COALESCE(max("Cd_batch"), to_char(now(), 'yyyyMMdd')||''), '') + , '') from schema.数据表名称 where "TableName"='数据表名称' and "Cd_source"='数据来源'

步骤一:获取最大的批次号:

 select max("Cd_batch") from schema.数据表名称 where "TableName"='数据表名称' and "Cd_source"='数据来源'

步骤二:判断如果最大批次号如果为null,根据规则生成一个批次号。

 select COALESCE(max("Cd_batch"), to_char(now(), 'yyyyMMdd')||'') from schema.数据表名称 where "TableName"='数据表名称' and "Cd_source"='数据来源'

步骤三:将生成的字符串转换为数值类型numeric的,长度为第二个参数的长度,并且批次号加1。这样下发的数据的批次号就是叠加后的批次号。

  select to_number(COALESCE(max("Cd_batch"), to_char(now(), 'yyyyMMdd')||''), '') +  from schema.数据表名称 where "TableName"='数据表名称' and "Cd_source"='数据来源'

步骤四:将生成的数值numeric类型转换为字符串类型的。

 select to_char(to_number(COALESCE(max("Cd_batch"), to_char(now(), 'yyyyMMdd')||''), '') + , '') from schema.数据表名称 where "TableName"='数据表名称' and "Cd_source"='数据来源'

待续......

常用Mysql或者PostGresql或者Greenplum的语句总结。的更多相关文章

  1. mysql迁移mpp数据库Greenplum

    1. 场景描述 因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水 ...

  2. 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念

    本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...

  3. 【PHP基础】常用mySQL语句以及WampServer2.2设置数据库默认编码

    一.WampServer2.2设置数据库默认编码(此部分转自http://www.cnsecer.com/5984.html) wamp下MySQL的默认编码是Latin1,不支持中文,要支持中文的话 ...

  4. 常用MySQL语句整合

    常用MySQL语句整合 1. MySQL服务的配置和使用 修改MySQL管理员的口令:mysqladmin –u root password 密码字符串 如:mysqldmin –u root pas ...

  5. Mysql 和 Postgresql(PGSQL) 对比

    Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQ ...

  6. PostgreSQL和Greenplum、Npgsql

    PostgreSQL和Greenplum.Npgsql 想着要不要写,两个原因“懒”和“空”.其实懒和空也是有联系的,不是因为懒的写,而是因为对PostgreSQL和Npgsql的知识了解匮乏,也就懒 ...

  7. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

  8. SQLite vs MySQL vs PostgreSQL:关系型数据库比较

    自1970年埃德加·科德提出关系模型之后,关系型数据库便开始出现,经过了40多年的演化,如今的关系型数据库种类繁多,功能强大,使用广泛.面对如此之多的关系型数据库,我们应该如何权衡找出适合自己应用场景 ...

  9. 去 IOE,MySQL 完胜 PostgreSQL

    本文转载自: http://www.innomysql.net/article/15612.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 前言 上周参加了2015年的中国数据库 ...

随机推荐

  1. nodejs开发辅助工具nodemon

    前面的话 修改代码后,需要重新启动 Express 应用,所做的修改才能生效.若之后的每次代码修改都要重复这样的操作,势必会影响开发效率,本文将详细介绍Nodemon,它会监测项目中的所有文件,一旦发 ...

  2. Djangon的坑

    <a href="/del_student/?pk={{ students.pk }}"></a> 在django中当你写入这样的语句是,pk={{ stu ...

  3. 2.6 datetime 模块

    目录 2.6.1  常用类 2.6.1.1 datetime.date 2.6.1.2 datetime.time 2.6.1.3 datetime.datetime 2.6.1.4 datetime ...

  4. class09

    class09 四川菜很辣. Sichuan cuisine is very spicy. 那个汤是凉的. That soup is cold. 这茶很烫. This tea is very hot. ...

  5. 如何确定Kafka的分区数、key和consumer线程数

    [原创]如何确定Kafka的分区数.key和consumer线程数   在Kafak中国社区的qq群中,这个问题被提及的比例是相当高的,这也是Kafka用户最常碰到的问题之一.本文结合Kafka源码试 ...

  6. Zabbix通过Orabbix监控Oracle数据库

    一.背景 公司业务使用的是一直Oracle数据库,因为多次出现表空间满的时候不能及时发现,每次都是业务组的人员通知处理,这样下来DBA这边就比较被动,所以老大要求监控表空间剩余大小并且当剩余过小时能够 ...

  7. Springboot 2.返回cookies信息的get接口开发 和 带cookis去请求

    首先要有一个启动类,默认的启动类的名字就是Application.java.启动的时候直接右键点击run就可以 Application.java: import org.springframework ...

  8. 三步解决fiddler升级后https无法通过证书验证问题

    有时候使用fiddler时,https页面会出现错误提示,我们可以这样设置来避免错误 第一步:去掉https的抓取 Tools>Option 去掉Capture HTTPS CONNECTs 的 ...

  9. 微信小程序无法定位

    获取定位的时候报:errMsg:getLocation:fail:require permission desc 错 解决办法: 在app.js加入代码 //app.js新增如下代码 config = ...

  10. RSA Encrypting/Decrypting、RSA+AES Encrypting/Decrypting

    catalogue . CryptoAPI介绍 . RSA Encrypting/Decrypting File 1. CryptoAPI介绍 0x1: Cryptography Service Pr ...