试试这样
select t.acct_month,
a.area_desc,
t.acct_no,
t.acct_name acct_name_all,
case
when length(t.acct_name) > 6 then
substr(t.acct_name, 0, 6) || '...'
else
substr(t.acct_name, 0, 6)
end as acct_name,
t.cust_no,
t.cust_name cust_name_all,
else substr(t.cust_name, 0, 6) end as cust_name,
t.user_no,
t.user_name user_name_all,
case
when length(t.channel_desc) > 8 then
substr(t.channel_desc, 0, 8) || '...'
else
substr(t.channel_desc, 0, 8)
end as channel_desc,
t.user_dinner,
t.user_dinner_desc user_dinner_desc_all,
case
when length(t.user_dinner_desc) > 8 then
substr(t.user_dinner_desc, 0, 8) || '...'
else
substr(t.user_dinner_desc, 0, 8)
end as user_dinner_desc,
t.bus_grp_no,
t.bus_grp_desc bus_grp_desc_all,
case
when length(t.bus_grp_desc) > 8 then
substr(t.bus_grp_desc, 0, 8) || '...'
else
substr(t.bus_grp_desc, 0, 8)
end as bus_grp_desc,
t.link_tel_no,
t.user_address user_address_all,
else substr(t.user_address, 0, 8) end as user_address,
t.acct_income,
t.mou,
t.remark remark_all,
case
when length(t.remark) > 8 then
substr(t.remark, 0, 8) || '...'
else
substr(t.remark, 0, 8)
end as remark,
a.AREA_NO FACT_AREA_ID,
a.DESCRIPTION AREA_DESC,
a.IDX_NO SORT_ID,
a.AREA_NO AREA_ID
from dm.ODS_DETAIL_G_INCOME_USER_M t,
ODSCODE.DMCODE_AREA a
where t.AREA_NO = a.FACT_AREA_ID
and t.AREA_NO = '188'
and a.area_no = '188'
and t.acct_month = '201002'
order by ACCT_INCOME desc
1.避免使用*
2.建立索引