Alias ​​de columna SQLite

Premisa

Recientemente me encontré con un error en una declaración de selección en mi código. Fue bastante trivial solucionarlo después de darme cuenta de lo que estaba sucediendo, pero estoy interesado en encontrar una manera de asegurarme de que un error similar no vuelva a ocurrir.

Aquí hay un ejemplo de una consulta ofensiva:

select
  the,
  quick,
  brown
  fox,
  jumped,
  over,
  the,
  lazy,
  dog
from table_name;

Lo que pretendía era:

select
  the,
  quick,
  brown,
  fox,
  jumped,
  over,
  the,
  lazy,
  dog
from table_name;

Para aquellos que no lo ven, falta una coma después del marrón en el primero. Esto hace que la columna tenga un alias, porque no se requiere la palabra clave as. Entonces, lo que obtienes en el resultado es:

  the,
  quick,
  fox,
  jumped,
  over,
  the,
  lazy,
  dog

… con todos los valores de marrón en una columna llamada zorro. Esto se puede notar con bastante facilidad para una consulta corta como la anterior (especialmente cuando cada columna tiene valores muy diferentes), pero el resultado fue una consulta bastante complicada con columnas enteras en su mayoría como esta:

select
  foo,
  bar,
  baz,
  another_table.quux,
  a1,
  a2,
  a3,
  a4,
  a5,
  a6,
  a7,
  a8,
  a9,
  a10,
  a11,
  a12,
  a13,
  a14,
  a15,
  a16,
  b1,
  b2,
  b3,
  b7,
  b8,
  b9,
  b10,
  b11,
  b12,
  b13,
  b14,
  b18,
  b19,
  b20,
  b21,
  c1,
  c2,
  c3,
  c4,
  c5,
  c6,
  c7,
  c8
from table_name
join another_table on table_name.foo_id = another_table.id
where
  blah = 'blargh'
-- many other things here
;

Incluso con mejores nombres de columna, los valores son muy similares. Si me perdiera una coma después de b11 (por ejemplo) y luego todos los valores de b11 se llaman b12, es bastante desafortunado cuando ejecutamos los datos a través de nuestra tubería de procesamiento (que depende de estos nombres de columna en el resultado). Normalmente, seleccionaría * de table_name, pero lo que necesitábamos requiere que seamos un poco más selectivos que eso.

Pregunta

Lo que estoy buscando es una estrategia para evitar que esto vuelva a suceder.

¿Hay alguna manera de exigir como aliasing columnas? ¿O un truco de escribir cosas para que dé un error? (Por ejemplo, en lenguajes tipo C, comencé a escribir 1 == foo en lugar de foo == 1 para causar un error de compilación cuando accidentalmente omití un signo igual, convirtiéndolo en inválido 1 = foo en lugar de foo = 1. )

Uso vim normalmente, así que puedo usar hlsearch para resaltar comas y así poder mirarlo. Sin embargo, tengo que escribir consultas en otros entornos con bastante frecuencia, incluida una interfaz propietaria en la que no puedo hacer algo como esto fácilmente.

¡Gracias por tu ayuda!

Mejor respuesta
Una cosa que he hecho antes es mover las comas al comienzo de la línea. Esto permite algunos beneficios. Primero, puedes ver instantáneamente si faltan comas. En segundo lugar, puede agregar una nueva columna al final sin tener que modificar la última línea anterior.

Desaparecido:

select
  the
, quick
, brown
  fox
, jumped
, over
, the
, lazy
, dog
from table_name;

No falta

select
  the
, quick
, brown
, fox
, jumped
, over
, the
, lazy
, dog
from table_name;

Por favor indique la dirección original:Alias ​​de columna SQLite - Código de registro