1. 程式人生 > >wm_contact合併函式

wm_contact合併函式

wm_contact(column)是oracle10g開始使用的函式
一般外面用to_char(wm_contact(column))包裝一下。資料庫伺服器有的設定會不支援,不用to_char()包裝就會報錯

wm_concat(列名)函式,能把指定的列的值,(按照group by 中指定的分隔方法),一個個用逗號連結起來

#通用用法
select id,wm_concat(test) result
from test
group by id;

# oracle有的版本不支援上面的寫法,需要用to_char()包裝一下
select id,to_char(wm_concat(test)) result
from test group by id;

今天遇到兩個問題,
1、有些sql函式功能比較炫,但是如果要合併的表中的資料太多的話會很影響sql執行效率。比如oracle的wm_concat。
建立客戶,選擇客戶型別,可以多選。設計表時將客戶id和客戶型別id放在單獨的一個子表中。
而後臺查詢資料給手機端時,需要將客戶型別展示出來,所以就在查詢列表是關聯了下客戶型別表,使用wm_concat函式將該客戶的多個型別用douhao , 分隔開。組成一個字串。但是當型別表中有2w條資料的時候,查詢非常慢。
將該函式去掉後,查詢很快。

# 用LEFT JOIN 聯查wcm_concat語句,如果待處理表中的資料很多,那麼查詢非常慢,不推薦這麼使用。最後去掉了這段程式碼,在類中實現了wm_concat的相似功能。有時候sql雖然是萬能的,但是運用不當會影響效率
LEFT JOIN (SELECT wm_concat(to_char(cbcd.CODE_NAME)) kind_name,SALE_CUST_ID FROM SALE_CUSTOMER_KIND sck LEFT JOIN COMM_BASE_CODE_DETAIL cbcd ON cbcd.CODE_ID=sck.KIND_ID GROUP BY sck.SALE_CUST_ID) sss ON sss.SALE_CUST_ID=SC.SALE_CUST_ID

相關推薦

wm_contact合併函式

wm_contact(column)是oracle10g開始使用的函式 一般外面用to_char(wm_contact(column))包裝一下。資料庫伺服器有的設定會不支援,不用to_char()包

封裝合併函式 arr_merge

<?php $arr1 = array(1,2,3); $arr2 = array(4,5,6); $arr3 = array(7,8,9); $com = array_merge($arr1,$arr2,$arr3); //echo "<pre>"; //va

小白的python機器學習路(關於程式碼中逗號的使用以及ZIP函式和矩陣合併函式的使用)

由於本系列是自學過程中的隨筆,所以更新時間不固定且風格隨意散漫,各位看官見諒,只要能有所幫助就好!~ 首先是ZIP函式的解釋,ZIP函式用於多個矩陣的合併 Zip函式會將兩個矩陣對應元素組成一個元組,而各元組又作為最後形成的列表的元素 因此需要進行進一步矩陣運算時,

CSDN SQL版常見問題之一--合併函式

/*--轉載請註明,謝謝--作者:  Paoluo--日期:  2007-08-31--用途:  將相同ID的Name組合到一起,並用","分隔*/ --建立測試環境Create Table TEST(OrderID Int Identity (1, 1), ID Int, 

java 多個一元分段行駛時間函式合併成一個分段行駛時間函式

多個f分段行駛時間函式合併需要注意的是一個節點的到達時間即為該點的出發時間。 分段函式的建構函式如下 這裡寫程式碼片 public class FunctionUnit { private double k,b; double XStart,XEnd; publ

Oracle學習筆記:wm_concat函式合併欄位

  在Oracle中使用wm_concat(column)可以實現欄位的分組合並,逗號分隔。   例如,現有表temp_cwh_test: -- 建立臨時表 create table temp_cwh_test ( u_id varchar(10), goods varchar(32

bootstrap-table的合併單元格以及部分回掉函式

---------------------  作者:導哥  來源:CSDN  原文:https://blog.csdn.net/jingtianyiyi/article/details/76208880  版權宣告:本文為博主原創文章,轉載請附上博文連結!

[LOJ#2473][九省聯考2018]祕密襲擊(樹形DP+生成函式+線段樹合併+拉格朗日插值)

Address 洛谷P4365 BZOJ5250 LOJ#2473 The First Step - 轉化 簡版題意:給定一棵點帶權樹,求樹上所有大小大於 k

封裝合併arr_combine函式應用

<?php $arr1 = array('a','b','c'); $arr2 = array(100,200,300); //也就說明 a和100都處於第一個元素 // echo "<pre>"; // var_dump(array_combine($

函式】數的合併 簡單

題目:數的合併 題目表述:請編寫函式MergeData,其功能是:將一個三位數一個兩位數的正整數num1、num2合併形成一個整數放在newnum中。合併的方式是:將num1的百位,十位和個位依次存放在newnum數的萬位,十位和千位上,num2的十位和個位依次存放在newnum數的個位

python pandas 合併資料函式merge join concat combine_first 區分

pandas物件中的資料可以通過一些內建的方法進行合併:pandas.merge,pandas.concat,例項方法join,combine_first,它們的使用物件和效果都是不同的,下面進行區分和比較。 資料的合併可以在列方向和行方向上進行,即下圖所示的兩

SQL程式設計:group 不用合併結果字串 ---> group_concat函式就能行

1、表結構    create table tt(id int,v varchar(30));              insert into tt values(1,'a'),(1,'b'),(2,'b'),(2,'c'),(2,'b'),(2,'a'),(3,'a');              mys

WinAPI 字元及字串函式(9): lstrcat - 合併字串

unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls; type   TForm

一張表中把兩個欄位相同的資料合併(listagg函式

問題描述: 如下圖所示,需求是把省和產品相同的NTID合併到一起。 元資料: 想要的結果: 折騰了半天,結果經專案組大神指教,說有一個函式可以直接完成上訴操作。 listagg(); 程式碼如下: select yearmonth, listagg(ntid,

神奇快捷鍵 Ctrl+E,快速實現資料提取合併,擊倒所有函式

  在 Excel 2013 中新出現的快捷鍵最神奇莫過於 Ctrl + E 了,它能快速進行資料拆分提取,資料合併,調整格式都不在話下。在老版本的 Excel 中沒有 Ctrl + E 快速智慧填充的功能,我們通常會用到 Left, Right, Mid, Len, Mid, Find,

Python-dataframe合併(merge函式

import pandas as pd import numpy as np df1=pd.DataFrame({'key':['b','b','a','c','a','a','b'],'data1':range(7)}) df2=pd.DataFrame({'key':['a','b','

postgresql多列合併成一列string_agg函式

1 有時候我們會需要將多條資料根據一些特別的欄位做一些合併。比如下面這個查詢,正常會查詢出3條資料,但是我們會希望根據create_by 分成兩列顯示 2 這時候需要用到string_agg函式,先通過group by分組,在進行合併,當然查詢結果需要滿足group 

C++學習筆記 --- STL練習合併merge函式

#include <iostream> #include <algorithm> #include <numeric> #include <functional> #include <vector> using n

oracle 聚合函式 LISTAGG ,將多行結果合併成一行

LISTAGG(列名,' 分割符號') oracle 11g 以上的版本才有的一個將指定列名的多行查詢結果,用 指定的分割符號 合併成一行顯示: 例如: 表原始資料: 需求:將 mb1_Transport_License_list 表中的資料,根據 transport

postgresql 9.3 自定義聚合函式實現多行資料合併成一列

前言 常見的一種需求,如下圖(1): 目前需要按右邊的factor_code進行分組,將左邊的behavior_code這一列通過指定分隔符連線起來,比如通過<br /> 來連線,理想的效果應當是如下圖(2)這樣: 下面就來討論一下實現