Czego chcesz, nie być zrobione w czystym SQL.
Zasadniczo potrzebujesz SQL, który może warunkowo wybrać kolumnę, która może nie istnieć. Nie można przeanalizować takiego kodu SQL — wszystkie wybrane kolumny muszą istnieje lub zapytanie będzie nieprawidłowe.
Możesz jednak osiągnąć to za pomocą kodu aplikacji, wysyłając zapytania do tabel katalogu w celu sprawdzenia schematu bazy danych, z którą jesteś połączony, i dynamicznie kompilując na jego podstawie SQL.
To zapytanie może pomóc w utworzeniu zapytania w kodzie aplikacji:
select COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'users'
and TABLE_SCHEMA = 'YOUR-DB-NAME';