select

行转列

风格不统一 提交于 2020-04-02 06:46:41
在数据清洗和转换过程中,需要把多行按照聚合成一行,下面介绍几个聚合函数。 特别要注意非聚合字段是null的情况,这是导致聚合字段过长的主要原因。 1.WM_CONCAT() 在11G和12C版本中,这个函数已经失效。 select t.nation,wm_concat(t.city) as citys from a_test group by t.nation; 2.LISTAGG() 这个函数容易出现字符串过长的报错。 select t.nation,listagg(t.city,',') within group(order by t.city) as citys from a_test t group by t.nation; 3.XMLAGG() select t.nation,rtrim(xmlagg(xmlelement(e,t.city,',').extract('//text()')).getclobval(),',') as citys from a_test t group by t.nation; ---结果中的聚合字段是CLOB类型,是文本字符。 ---处理400多万条数据,运行时间是20分钟 特别要注意非聚合字段是null的情况,这是导致聚合字段过长的主要原因。 select t.nation,xmlagg(xmlparse(content t.city

行转列

别说谁变了你拦得住时间么 提交于 2020-04-02 06:45:55
在数据清洗和转换过程中,需要把多行按照聚合成一行,下面介绍几个聚合函数。 特别要注意非聚合字段是null的情况,这是导致聚合字段过长的主要原因。 1.WM_CONCAT() 在11G和12C版本中,这个函数已经失效。 select t.nation,wm_concat(t.city) as citys from a_test group by t.nation; 2.LISTAGG() 这个函数容易出现字符串过长的报错。 select t.nation,listagg(t.city,',') within group(order by t.city) as citys from a_test t group by t.nation; 3.XMLAGG() select t.nation,rtrim(xmlagg(xmlelement(e,t.city,',').extract('//text()')).getclobval(),',') as citys from a_test t group by t.nation; ---结果中的聚合字段是CLOB类型,是文本字符。 ---处理400多万条数据,运行时间是20分钟 特别要注意非聚合字段是null的情况,这是导致聚合字段过长的主要原因。 select t.nation,xmlagg(xmlparse(content t.city

php常用的优化手段

孤街醉人 提交于 2020-04-02 06:25:22
由于工作码成狗,抽闲整理了下内容, 以下是网上流传比较广泛的30种SQL查询语句优化方法: 1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 4、尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 可以这样查询: select id from t where num=10 union all select id from t where num=20 5、下面的查询也将导致全表扫描:(不能前置百分号) select id from t where name like '%abc'; 若要提高效率,可以考虑全文检索。 6、in 和 not in 也要慎用,否则会导致全表扫描,如:

导出大数据方法。批量导BOM

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-01 10:26:20
create table CUX_IMPORT_DATA_E45 as select * from CUX_IMPORT_DATA_L11 where 1>2; CREATE TABLE CUX.lmh_segment1_E41 AS SELECT * FROM CUX.lmh_segment1_L11 WHERE 1>2; CUX.lmh_segment1_E41 CREATE TABLE CUX_IMPORT_DATA_E41 AS SELECT * FROM CUX_IMPORT_DATA_L11 WHERE 1>2 DELETE FROM CUX_IMPORT_DATA_E41; 插入表中 INSERT INTO CUX_IMPORT_DATA_E41(A,ID) select BBO.BILL_SEQUENCE_ID,rownum from BOM_BILL_OF_MATERIALS BBO, mtl_system_items_b msi where bbo.ORGANIZATION_ID = msi.ORGANIZATION_ID and bbo.ASSEMBLY_ITEM_ID = msi.inventory_item_id and msi.ORGANIZATION_ID = 140 and msi.inventory_item_status_code='Active

Postgres数据库维护

两盒软妹~` 提交于 2020-04-01 06:36:35
1.全自动备份 需要在备份机上也安装postgres(最好同一个版本) 在postgres目录下建立密码保存文件(明码保存,所以保密很重要),如果不建立,则因为每次备份都要输入密码,不能进行自动备份 #创建.pgpass文件 touch .pgpass #在文件中写入以下内容,可多行 #127.0.0.1:5432:dbName:dbUser:dbPassword #127.0.0.1:5432:dbName2:dbUser2:dbPassword2 创建自动脚本,自动按月分文件夹 #!/bin/sh . /etc/profile . ~/.bash_profile dirname=$(date +%Y%m) filename=$(date +%Y%m%d%H%M%S) mkdir -p /home/postgres/backup/$dirname/ pg_dump -h [ipAddr] -U [dbUser] [dbName]| gzip>/home/postgres/backup/$dirname/bk_$filename.gz 创建crontab自动执行即可 #去除限制导出 #--no-tablespaces 代表去除表空间限制(不导出表空间信息) #-O 代表不导出对象/库的所有者信息 #-x 代表不导出ACL权限信息和表的权限信息 pg_dump -h 127.0.0

jquery select取值,赋值操作

青春壹個敷衍的年華 提交于 2020-04-01 04:46:50
[导读] jquery select取值,赋值操作一、获取Select获取select 选中的 text : $(" ddlRegType") find("option:selected") text();获取select选中的索引: $(" ddlRegType") get(0) selectedIndex;二、设置Select设 select ">jquery select取值,赋值操作 一、获取Select 获取select 选中的 text :  $("#ddlRegType").find("option:selected").text(); 获取select选中的索引:  $("#ddlRegType").get(0).selectedIndex; 二、设置Select 设置select 选中的索引: $("#ddlRegType").get(0).selectedIndex = index;//index为索引值 设置select 选中的value: $("#ddlRegType").attr("value","Normal“); $("#ddlRegType").val("Normal"); $("#ddlRegType").get(0).value = value; 设置select 选中的text: 1 var count = $("#ddlRegType

SQL Server里简单参数化的痛苦

…衆ロ難τιáo~ 提交于 2020-04-01 03:24:11
在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的 简单参数化(Simple Parameterization) 的一些特性和副作用。首先,如果你的SQL语句包含这些, 简单参数化 不会发生: JOIN IN BULK INSERT UNION INTO DISTINCT TOP GROUP BY HAVING COMPUTE Sub Queries 一般来说,如果你处理所谓的 安全执行计划(Safe Execution Plan) ,SQL Server自动参数化你的SQL语句:不管提供的参数值,查询总必须通向一样的执行计划。如果你的执行计划里有书签查找,这就是不可能的例子。因为 临界点 定义了是否进行书签查找还是全表/聚集索引扫描。 自动参数化并不那么酷! 如果SQL Server能自动参数化你的SQL语句,你还是要考虑下SQL Server引入的自动参数化SQL语句的一些副作用。我们来看一个具体的例子。下列查询创建一个表,执行一个会被SQL Server自动参数化的简单SQL语句。 1 -- Create a simple table 2 CREATE TABLE Orders 3 ( 4 Col1 INT IDENTITY(1, 1) PRIMARY KEY NOT NULL, 5 Price DECIMAL

selenium常用的API

☆樱花仙子☆ 提交于 2020-04-01 03:23:21
打开浏览器 driver.get("http://www.baidu.com") 最大化浏览器 driver.maximize_window() 关闭浏览器 driver.quit() 浏览器向前 driver.forward() 浏览器向后 driver.back() 刷新浏览器 driver.refresh() 定位元素 # 获取单个元素 driver.find_element_by_class_name('') driver.find_element_by_id('') driver.find_element_by_css_selector('') driver.find_element_by_link_text('') driver.find_element_by_name('') driver.find_element_by_tag_name('') driver.find_element_by_xpath('') driver.find_element_by_partial_link_text('') # 获取一组元素 driver.find_elements_by_class_name('') driver.find_elements_by_id('') driver.find_elements_by_css_selector('') driver.find

mybatis之Sql语句构建器

瘦欲@ 提交于 2020-04-01 02:25:43
SQL类: 方法 描述 SELECT(String) SELECT(String...) 开始或插入到 SELECT 子句。 可以被多次调用,参数也会添加到 SELECT 子句。 参数通常使用逗号分隔的列名和别名列表,但也可以是数据库驱动程序接受的任意类型。 SELECT_DISTINCT(String) SELECT_DISTINCT(String...) 开始或插入到 SELECT 子句, 也可以插入 DISTINCT 关键字到生成的查询语句中。 可以被多次调用,参数也会添加到 SELECT 子句。 参数通常使用逗号分隔的列名和别名列表,但也可以是数据库驱动程序接受的任意类型。 FROM(String) FROM(String...) 开始或插入到 FROM 子句。 可以被多次调用,参数也会添加到 FROM 子句。 参数通常是表名或别名,也可以是数据库驱动程序接受的任意类型。 JOIN(String) JOIN(String...) INNER_JOIN(String) INNER_JOIN(String...) LEFT_OUTER_JOIN(String) LEFT_OUTER_JOIN(String...) RIGHT_OUTER_JOIN(String) RIGHT_OUTER_JOIN(String...) 基于调用的方法,添加新的合适类型的 JOIN 子句。

T-SQL查询进阶--深入浅出视图

喜你入骨 提交于 2020-04-01 02:10:05
简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。 为什么要使用视图(View) 从而我们不难发现,使用视图将会得到如下好处: 视图隐藏了底层的表结构,简化了数据访问操作 因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据 使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性 视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响 视图(View)的分类 视图在SQL中可以分为三类 普通视图(Regular View) 索引视图(Indexed View) 分割视图(Partitioned View) 下面从这几种视图类型来谈视图 普通视图(Rugular View) 普通视图由一个Select语句所定义,视图仅仅包含其定义和被引用表的metadata.并不实际存储数据。MSDN中创建视图的模版如下: CREATE VIEW [ schema_name . ] view_name [ (column [ ,