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. 前置通知也能对参数进行加工 通过joiPoint这个方法

  2. 【LOJ2542】【PKUWC 2018】随机游走 min-max容斥 树上高斯消元

    题目描述 有一棵 \(n\) 个点的树.你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...

  3. luogu4705玩游戏

    题解 我们要对于每个t,求一个(1/mn)sigma(ax+by)^t. 把系数不用管,把其他部分二项式展开一下: simga(ax^r*by^(t-r)*C(t,r)). 把组合数拆开,就变成了一个 ...

  4. 第十九节、基于传统图像处理的目标检测与识别(词袋模型BOW+SVM附代码)

    在上一节.我们已经介绍了使用HOG和SVM实现目标检测和识别,这一节我们将介绍使用词袋模型BOW和SVM实现目标检测和识别. 一 词袋介绍 词袋模型(Bag-Of-Word)的概念最初不是针对计算机视 ...

  5. Zookeeper与Curator二三事【坑爹】

    起因:我的Dubbo服务起不来:我本地Zookeeper3.4.11,Curator4.1 Caused by: org.apache.zookeeper.KeeperException$Unimpl ...

  6. linux log4j乱码问号的解决

    原因: linux本地设置的文件编码格式不是UTF-8 解决办法: 运行locale命令看一下结果: 把LC_CTYPE修改为“zh_CN.UTF-8”: cd ~/ vi .bashrc 添加: L ...

  7. Python Pandas 简单使用之 API熟悉

    1.read_csv li_index = ['round_id', 'index', 'c-sequen' ] dataset = pd.read_csv(file, low_memory=Fals ...

  8. gdb core 调试多线程

    ref :http://blog.sina.com.cn/s/blog_62dc94eb0100flyn.html 如果目标进程已经core dump了,那么 gdb -c core xxx   xx ...

  9. CSS布局-flex布局入门教程

    前言 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 查询兼容 F ...

  10. word中中文保持正体,英文用斜体的方法.

    有时候,大段的文字中夹杂着英文字母,英文需要斜体,如果一个接一个选中再斜体,费时费力,那么怎样快速实现文斜体中文不斜体呢? 工具/原料 word软件 方法/步骤 选中要修改的段落,替换-查找内容-特殊 ...