2013-08-22 22 views
0

我在從SQL查詢中將檢索到的值轉換爲正確的格式時遇到了一些麻煩。使用逗號分隔合併的SQL行

我已經設法加入多個行到一個值,但我不知道如何使用逗號分隔每個值。基本上,我需要檢索產品的所有ID,例如,如果數據庫的值爲'5,6,9,1''1,3,4'和'2,1',我希望它拋出每個之間的逗號 - >'5,6,9,1,1,3,4,2,1',而不是像' - '5,6,911,3,42,1'這樣的東西 - 這就是它目前正在進行。

我使用的代碼如下。任何幫助將不勝感激。

謝謝!

$hist = "SELECT ORDITEMS FROM cust_orderc WHERE ORDDATE > 
to_date('".$olddate."','dd/mm/yyyy')"; 


$histitem = OCIParse($db, $hist); 
OCIExecute($histitem); 

while($row = oci_fetch_array($histitem)){ 
    $pastitem .= $row['ORDITEMS']; 
} 

echo "$pastitem"; 

回答

0

您可以用做同樣在oracleLISTAGG

$hist = "SELECT LISTAGG(ORDITEMS) as ORDITEMS FROM cust_orderc WHERE ORDDATE > to_date('".$olddate."','dd/mm/yyyy')"; 

編輯或PHP方式

$pastitem = ''; 
while($row = oci_fetch_array($histitem)){ 
    $pastitem .= $row['ORDITEMS'] . ','; 
} 
$pastitem = trim($pastitem, ","); 
echo $pastitem; 
+1

對於Oracle數據庫,在同等功能是'wm_concat()' –

+0

@ MarkBaker謝謝,我從來沒有注意到這個與oracle數據庫相關的查詢。 :) –

+0

wm_concat()從來沒有(IIRC)正式記錄或支持;我相信Oracle 11g具有用於相同目的的'LISTAGG()'功能 –