当前位置: 代码迷 >> SQL >> 在调用sql脚本时动态生成暂时表处理
  详细解决方案

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

热度:84   发布时间:2016-05-05 11:09:13.0
在调用sql脚本时动态生成临时表处理
定义一张临时表,往里插数据,返回表名
temp_terms_table_name = insert_keywords_into_table(keywords, batch_id, audience_id) sql_array << "SELECT 'opx:'||click_opxpid, 'aids', #{audience_id} FROM xm_dw.clickdatas c INNER JOIN xmo_dw.searchengines se ON c.searchengine_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 = "xmo_workspace.audience_terms_#{batch_id}_#{audience_id}"        AudienceStructure.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(",")        AudienceStructure.connection.execute("insert into #{str_table_name} values #{keywords_string};")        return str_table_name      end
  相关解决方案