我使用以下查询生成管道分隔文件,但我也想要管道分隔列名。你能帮帮我吗。
select cast (sample_dt||'|'||trim(trailing '.' from trim(leading ' ' from acct_id))||'|'||name1||'|'||ent_sub_lob||'|'||app_dt||'|'||home_phn_num||'|'||city_1_name||'|'||geo_st_cd||'|'||surveyid||'|'||study_type||'|'||ent_lob||'|'||channel||'|'||market_C||'|'||merchant_id as char(300))
from ud.testing;
答案 0 :(得分:0)
如果我理解正确,您需要表格列名称或当前派生列,即cast (sample_dt||'|'||trim(trailing '.' from.....
名称为|
分隔。在这两种情况下,您只需要在列名称周围添加双引号""
,如下所示。
在创建表格中
create TABLE t1(
"x1 | y1" char(300)
);
您可以使用show
命令检查已创建的表定义。
show TABLE t1;
CREATE SET TABLE t1 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
"x1 | y1" CHAR(300) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( "x1 | y1" );
在派生列中:
SELECT 'abc'||' | '|| 'zyc' as "Test | ABC";
Test | ABC
----------
abc | zyc
您当前的查询将成为。
SELECT CAST (sample_dt||'|'||trim(TRAILING '.'
FROM trim(LEADING ' '
FROM acct_id))||'|'||name1||'|'||ent_sub_lob||'|'||app_dt||'|'||home_phn_num||'|'||city_1_name||'|'||geo_st_cd||'|'||surveyid||'|'||study_type||'|'||ent_lob||'|'||channel||'|'||market_C||'|'||merchant_id AS char(300)) AS "Pipe | Seperated"
FROM ud.testing;
希望它会有所帮助: - )