Удалите дубликаты или ненужные псевдонимы в SQL

#python #sql

Вопрос:

У меня есть несколько sql, у которых есть ненужный псевдоним, и я пытаюсь удалить их с помощью скрипта python. все, что мне нужно сделать, это найти тот же псевдоним, если совпадения удаляют его. Не мог бы кто-нибудь, пожалуйста, помочь мне в исправлении кода

 select "a" as "a",
"b" as "b",
"c" as "c",
IFF(instru(UPPER(suff), ' '), midstru("CD_EXTRACT", instru(UPPER("SOLDTO_SUFF"), ' ') 
|| 1),"SOLDTO_SUFF") ) as "CD_EXTRACT_SOLD",
FROM(
select "a" as "a",
sum(b) as "b",
CASE WHEN  (DAYOFWEEK("DEL_DATE")-1) =     0 THEN  'Monday'  else "tuesday'
END  as "CD_ACT_DEL_DATE" ,
suff as suff, CD_EXTRACT as CD_EXTRACT, SOLDT1 AS SOLD_SUFF,
"c" as "c" from  aint
 

Ожидаемый результат выглядит следующим образом

 select "a",
"b",
"c", 
IFF(instru(UPPER(suff), ' '), midstru("CD_EXTRACT", instru(UPPER("SOLDTO_SUFF"), ' ') 
|| 1),"SOLDTO_SUFF") ) as "CD_EXTRACT_SOLD",
FROM(
select "a",
sum(b) as "b",
CASE WHEN  (DAYOFWEEK("DEL_DATE")-1) =     0 THEN  'Monday'  else "tuesday'
END  as "CD_ACT_DEL_DATE" ,
suff, CD_EXTRACT, SOLDT1 AS SOLD_SUFF,
"c"  from aint
 

код, который я попробовал, выглядит следующим образом

 ource_file = open('new.sql','r')
source_txt = source_file.read()

start = source_txt.index('SELECT')
end = source_txt.index('FROM')
n = []
target = source_txt[start:end]
splitter = target.split(',')
# print(splitter)
for i in  splitter:
        a = i.split('as')
        if a[0] == a[1]:
                n.append(a[1])
        else:
                n.append(a)
for m in n:
        print(m "n")
 

Комментарии:

1. Зачем беспокоиться? Все работает так, как есть. (Вам нужна полная грамматика SQL, чтобы сделать это правильно».)