é possivel adicionar vírgula neste SQL?

1

Eu tenho uma declaração como essa

UPDATE 'test'.'scores'
 SET
   id=1
   name='kobe'
   score=99
 WHERE
   id=1
   name='kobe'
   score=100
 UPDATE 'test'.'scores'
 SET
   id=2
   name='tmac'
   score=70
 WHERE
   id=2
   name='tmac'
   score=100
 UPDATE 'test'.'scores'
 SET
   id=3
   name='rose'
   score=80
 WHERE
   id=3
   name='rose'
   score=100
......

como adicionar , , and & ; nisto? Eu quero o meu resultado como

UPDATE 'test'.'scores'
 SET
   id=1,
   name='kobe',
   score=99
 WHERE
   id=1 and
   name='kobe' and
   score=100;
    
por LawrenceLi 12.07.2016 / 12:12

1 resposta

3

Deve haver algo mais simples que isso:

awk '
/^ *UPDATE/   { prevsep=";" }
/^ *(SET|WHERE)/{ prevsep="" }
{ if(previous)print previous prevsep; previous = $0; prevsep = sep }
/^ *(UPDATE|SET|WHERE)/{ prevsep="" }
/^ *SET/  { sep="," }
/^ *WHERE/{ sep=" and" }
END { print previous ";" }'

Cada linha é lembrada em previous e impressa com um conjunto de separadores anterior de um separador sep acionado após essa linha pelas palavras-chave UPDATE SET WHERE. Essas palavras-chave também limpam o separador anterior (ou definem como ; ), portanto, a linha anterior é impressa sem vírgula ou and .

    
por 12.07.2016 / 12:46