`

在调用sql脚本时动态生成临时表处理

 
阅读更多
定义一张临时表,往里插数据,返回表名
temp_terms_table_name = insert_keywords_into_table(keywords, batch_id, audience_id)
 sql_array << "SELECT 'opx:'||click_opxpid, 'aids', #{audience_id} FROM dw.clickdatas c INNER JOIN dw.searcher se ON c.searcher_id = se.id INNER JOIN #{temp_terms_table_name} t on position(t.term in c.leading_keyword) != 0 WHERE client_id = #{a.client_id} AND c_date >= #{int_date} GROUP BY 1"



def insert_keywords_into_table(arr_keywords, batch_id, audience_id)
        str_table_name = "workspace.audience_terms_#{batch_id}_#{audience_id}"
        Audience.connection.execute("create table #{str_table_name} (term text) with (appendonly = true, compresslevel = 6);") if @keywords_table_created == false
        @keywords_table_created = true
        keywords_string = arr_keywords.collect{|k| "(#{SearchenginePpc.connection.quote(k)})"}.join(",")
        Audience.connection.execute("insert into #{str_table_name} values #{keywords_string};")
        return str_table_name
      end
分享到:
评论

相关推荐

    在Sql Server 数据库中利用存储过程实现动态交叉表

    动态SQL能够根据条件来改变查询语句的结构,这在处理不固定的列和行时非常有用。 2. **临时表的使用**:在构建动态交叉表时,经常需要创建临时表来暂存中间数据。临时表可以是本地临时表(以#开头)或全局临时表...

    合并SQL脚本文件的方法分享

    存储过程首先处理输入参数,确保路径以反斜杠结尾,生成新的文件名(默认格式为“合并脚本-YYYYMMDD.sql”),然后创建临时表来存储文件列表和目录结构。接下来,通过`xp_dirtree`扩展存储过程遍历指定目录下的所有...

    将SQL数据库表转换成XML文件输出(脚本)

    - 遍历临时表中的所有表名,并为每个表生成相应的XML文件。 - 使用`bcp`命令来创建格式文件,再使用`FOR XML AUTO`来生成XML数据,并最终通过`bcp`命令将XML数据导出到指定路径。 ```sql declare cur cursor for...

    oracle 动态SQL

    动态SQL的使用通常在处理不确定的查询结构、执行基于条件的DML操作或者需要根据运行时信息生成SQL语句时非常有用。以下是关于Oracle动态SQL的一些关键知识点: 1. **EXECUTE IMMEDIATE语句**: - EXECUTE ...

    SQL脚本

    在处理大量数据时,经常需要实现分页查询。SQL中的LIMIT和OFFSET关键字可用于实现此功能,如`SELECT * FROM table LIMIT 10 OFFSET 20`将返回第21到30条记录。 7. JOIN操作: SQL提供了多种JOIN类型,如INNER ...

    Shell脚本中执行sql语句操作mysql的5种方法

    #### 四、使用管道符调用SQL文件 这种方法适用于SQL文件较大或需要多次执行同一组SQL语句的情况。具体做法是先将SQL文件通过`操作符输入到`mysql`命令中,然后将执行结果通过`&gt;`操作符输出到一个文件中。例如: ```...

    SQL2000自学通教程(精华版)

    在本章节中,我们将深入探讨高级 SQL 技术,包括临时表、游标以及如何创建和使用存储过程。通过学习这些内容,你将能够更好地管理和控制数据,提高查询效率,并实现更为复杂的业务逻辑。 ##### 临时表 **定义:** ...

    SQL查表大小语句

    ### SQL脚本详解 接下来是对脚本中的主要逻辑进行解析: 1. **检查临时表是否存在**: ```sql if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and ...

    SQL Server索引视图及性能提高简介

    SQL Server的索引视图是一种特殊类型的视图,它的出现主要为了提升数据库系统的性能,尤其在处理复杂的查询和数据聚合时。在SQL Server 2000中,引入了索引视图的概念,使得视图不仅可以作为数据的安全访问机制和...

    DB2表空间管理及查看脚本

    1. **子查询**:通过使用`WITH`子句定义了两个临时表`a`和`bas`,其中`a`用于计算各个表的大小和创建时间,而`bas`则用于累积计算所有表的总大小。 2. **条件过滤**:脚本中定义了一系列的过滤条件,以确保只删除...

    SAP HANA SQL Script

    - 使用SQL Script开发应用程序:包括处理临时数据、SQL查询的排名以及从客户端调用SQL脚本。 最后,文档可能还会涉及到SAP HANA的特定版本信息,如SAPHANA Appliance Software SPS05,以及文档版本号,比如1.0-2012...

    SQL Server CTE 递归查询全解1

    CTE是T-SQL脚本中的临时结果集,可以用于复杂的查询,尤其是需要递归操作的情况。本文将深入探讨CTE递归查询的原理、使用方式以及示例。 首先,理解CTE递归查询的三个关键组成部分: 1. **初始条件**:这是CTE的...

    存储过程实例+SQL2008完全自学手册

    此外,书中还会讲解如何调用存储过程,包括在T-SQL脚本中和应用程序中(如C#、VB.NET等)的调用方式。 存储过程的优化是另一个重要主题。通过分析执行计划,你可以识别性能瓶颈并进行调整。这可能涉及重写查询、...

    Oracle与SQLServer的SQL语法差异总结.docx

    在查询语法中,Oracle允许结果集作为临时表使用,且有特殊的虚表dual,而SQL Server没有类似的概念。 总之,Oracle和SQL Server在SQL语法上各有特点,理解这些差异对于数据库开发者和管理员来说至关重要,能够更...

    SQL Server 高级-(存储过程)

    其次,存储过程可以包含控制流程语句,如IF-ELSE、WHILE、BEGIN-END等,使得我们在处理数据时能够进行条件判断和循环操作。这使得存储过程具备了处理复杂业务逻辑的能力,比如实现复杂的计算任务或执行多步骤的数据...

    SQLServer2000存储过程与XML

    7. **批量执行**:通过存储过程,可以批量执行SQL脚本,提高数据处理效率,例如TbDbBatchExec.zip可能包含的就是这样的脚本。 8. **数据库设计和联邦服务器**:如FederatedServers.zip可能涉及分布式数据库系统,...

    SQLServer存储过程在系统开发中的应用

    存储过程是一种预编译的SQL脚本,它可以包含复杂的查询、事务处理逻辑以及错误处理机制等。一旦创建,存储过程即成为数据库的一部分,并且可以在应用程序或其他存储过程中被调用。 #### 存储过程的优势 - **提高...

    SQL Server查询数据库中表使用空间信息实现脚本

    在上述脚本中,`#temp`是创建的一个临时表,用于存储查询结果。`sp_MSforeachtable`遍历每个表(由`?`表示),并为每个表调用`sp_spaceused`存储过程。`sp_spaceused`是一个系统存储过程,用于返回表或索引的大小...

    SAP HANA SQL Script Reference

    动态 SQL 允许在运行时构建 SQL 查询。 - **EXEC**:执行预定义的 SQL 语句。 - **EXECUTE IMMEDIATE**:执行动态构造的 SQL 语句。 - **APPLY_FILTER**:应用过滤器到查询结果。 ##### 7.9 异常处理 异常处理机制...

    sqlserver数据库构建及初始化程序

    1. 数据架构设计:数据库初始化通常包括创建表、视图、存储过程、触发器等数据库对象,这可以通过编写T-SQL脚本并在SQL Server中执行来完成。 2. 示例数据填充:为了测试和验证数据库设计,往往需要填充一些示例数据...

Global site tag (gtag.js) - Google Analytics