我正在尝试根据条件将字符串分为两行。我使用循环来合并值。
图像中给出了输入数据集和输出列
我用于循环将行中的值连接起来
DECLARE
ids numbertabletype;
vals VARCHAR2(3000);
BEGIN
ids := LOOP_TEST();
DBMS_OUTPUT.PUT_LINE( 'NUMBER OF IDs: ' || CASE WHEN ids IS NULL THEN 'NULL' ELSE TO_CHAR( ids.COUNT ) END );
SELECT LISTAGG(COLUMN_VALUE,',') WITHIN GROUP( ORDER BY ROWNUM )
INTO vals
FROM TABLE(ids);
DBMS_OUTPUT.PUT_LINE( 'values: ' || vals );
END;
/
在我的最终输出中,所有行都将合并。
答案 0 :(得分:0)
虽然我想让您知道我还没有完全理解您的问题,但是在查看代码时,我看到以下可能会导致问题的错误。
for i in range(len(Data)):
j=i+1
while j < len(Data):
if(Data['key (Sum(col1to6))'][i]!=Data['key (Sum(col1to6))'][j]):
break;
if (Data['key (Sum(col1to6))'][i]==Data['key (Sum(col1to6))'][j]) and Data['value'][i]<10:
Data['ouput_code'][i]=Data['Col6'][i]+Data['Col6'][j]
else:
#Data['ouput_code']=Data['Col6'] # <== Here you are over writing the whole ouput_code column
Data['ouput_code'][i]=Data['Col6'][i] # <== I believe what you want to do is update just one entry
j=j+1
print ('last',i)
那是你想做什么?
谢谢