Beispiele für SELECT-Abfragen mit verschiedenen Arten von Spaltenlisten
Ein einfaches SELECT, das nur Spaltennamen verwendet:
select cust_id, cust_name, phone
  from customers
  where city = 'London'Eine Abfrage mit einem Verkettungsausdruck und einem Funktionsaufruf in der Spaltenliste:
select 'Mr./Mrs. ' || lastname, street, zip, upper(city)
  from contacts
  where date_last_purchase(id) = current_dateEine Abfrage mit zwei Unterauswahlen:
select p.fullname,
  (select name from classes c where c.id = p.class) as class,
  (select name from mentors m where m.id = p.mentor) as mentor
from pupils pDie folgende Abfrage bewirkt dasselbe wie die vorherige, indem Joins anstelle von Subselects verwendet werden:
select p.fullname,
  c.name as class,
  m.name as mentor
  join classes c on c.id = p.class
from pupils p
  join mentors m on m.id = p.mentorDiese Abfrage verwendet ein CASE-Konstrukt, um den richtigen Titel zu ermitteln, z.B.beim Senden von E-Mails an eine Person:
select case upper(sex)
    when 'F' then 'Mrs.'
    when 'M' then 'Mr.'
    else ''
  end as title,
  lastname,
  address
from employeesAbfrage über eine Fensterfunktion.Sortiert Mitarbeiter nach Gehalt.
SELECT
  id,
  salary,
  name ,
  DENSE_RANK() OVER (ORDER BY salary) AS EMP_RANK
FROM employees
ORDER BY salary;Abfrage einer auswählbaren gespeicherten Prozedur:
select * from interesting_transactions(2010, 3, 'S')
  order by amountAuswählen aus Spalten einer abgeleiteten Tabelle.Eine abgeleitete Tabelle ist eine SELECT-Anweisung in Klammern, deren Ergebnismenge in einer einschließenden Abfrage verwendet wird, als wäre es eine reguläre Tabelle oder Ansicht.Die abgeleitete Tabelle ist hier fett gedruckt:
select fieldcount,
  count(relation) as num_tables
from (select r.rdb$relation_name as relation,
        count(*) as fieldcount
      from rdb$relations r
        join rdb$relation_fields rf
          on rf.rdb$relation_name = r.rdb$relation_name
      group by relation)
group by fieldcountAbfrage der Uhrzeit über eine Kontextvariable (CURRENT_TIME):
select current_time from rdb$databaseFür diejenigen, die mit RDB$DATABASE nicht vertraut sind: Dies ist eine Systemtabelle, die in allen Firebird-Datenbanken vorhanden ist und garantiert genau eine Zeile enthält.Obwohl es nicht für diesen Zweck erstellt wurde, ist es unter Firebird-Programmierern zur Standardpraxis geworden, aus dieser Tabelle auszuwählen, wenn Sie “from Nothing” auswählen möchten, dh wenn Sie Daten benötigen, die nicht an eine Tabelle oder Ansicht gebunden sind, kann aber allein aus den Ausdrücken in den Ausgabespalten abgeleitet werden.Ein anderes Beispiel ist:
select power(12, 2) as twelve_squared, power(12, 3) as twelve_cubed
  from rdb$databaseSchließlich ein Beispiel, in dem Sie einige aussagekräftige Informationen aus RDB$DATABASE selbst auswählen:
select rdb$character_set_name from rdb$databaseWie Sie vielleicht erraten haben, erhalten Sie dadurch den Standardzeichensatz der Datenbank.