2015-10-08 70 views
0

詞語我想扭轉該串中的單詞中的Teradata 14.Teradata14扭轉串

例如:「JAI基思帕RAM」被輸入。輸出應該是'ram pavan Keith jai'。我需要動態邏輯。它也應該適用於這個I/P。

'ram sita Laxmi'應該給o/p作爲'Laxmi sita ram'。

回答

0

阿迪,因爲在你列的內容是不固定的。對於動態數據,你有兩個選擇, 1.Write的SP 2.Handle它在UNIX腳本.WRITE數據到一個文件,使用AWK修改然後重新加載。

書面殼樣品

###Script to export the results to the file### 

rm -f Script.log 
bteq <<EOF>> Script.log 2>&1 
.logon <ip or hostname>/<USR>,<PWD> 
.OS rm -f Temp_export.out 
.SET WIDTH 1000 
.export REPORT FILE=Temp_export.out 
Select 
cast(cast(id as varchar(10))||','||cast(name as varchar(100)) as varchar(111)) 
from DB_SOK.testTable; 
.SET TITLEDASHES OFF 
.export reset 
.logoff 
.quit 
EOF 
#####removed the top two files from the report generated from previous ###### 

tail -n +3 Temp_export.out > temp_export_removed_header 

rm -f temp_import 

#######reverse the words using AWK in unxi ############################ 
while read LINE 
do 
x=`echo $LINE|cut -f1 -d','` 
y=`echo $LINE|cut -f2 -d','|awk '{ for (i=NF; i>1; i--) printf("%s ",$i); print $1; }';` 

echo $x,$y >> temp_import 

done < temp_export_removed_header 

#####script to import results to the table #### 

bteq << EOF 
.logon <ip or hostname>/<USR>,<PWD> 

.import vartext ',' file =temp_import 
database <DB_NAME>; 
.quiet on; 
.repeat *; 
using 
id (varchar(10)), 
name (varchar(100)) 
insert into testTable2 (id,name) 
values 
(
:id, 
:name 
); 
.logoff 
.quit 
EOF 

希望這將解決您暫時... :) 如果我會得到一個時間將嘗試寫一個SP。

2

您可以使用STRTOK_SPLIT_TO_TABLE根據任何分隔符拆分字符串。拆分字符串被稱爲令牌,並根據它們的順序給出一個tokennum。 然後使用XMLAGG將它們綁定在一起,這次按令牌編號的降序排列令牌。

select 
    xmlagg(d.token order by tokennum desc) (varchar(100)) AS reversed_string 
    from 
    table (strtok_split_to_table(1, 'Teradata14 reversing the words in string', ' ') 
    returns (outkey integer, tokennum integer, token varchar(20)character set unicode)) as d; 

*** Query completed. One row found. One column returned. 
*** Total elapsed time was 1 second. 

reversed_string 
---------------------------------------------------------------------------------------------------- 
string in words the reversing Teradata14 
+0

@Ear桃子...優秀...從來沒有想過它......但它會在TD 14.00.00.01版本中工作嗎? –

+0

適用於我的TD版本14.10.06.04 – Noel