Dodawanie wiersza do wyniku zapytania

0

Cześć,

potrzebuje dodać wiersz do wyniku zapytania tak jak pokazane jest to tutaj:
http://stackoverflow.com/questions/738631/add-row-to-query-result-using-select

jednak wygląda na to ze Firebird (używam wersji 2.1) nie pozwala na używanie SELECT bez części FROM
czy ktoś mógłby mi pomoc? może jest jakaś inna metoda?

zrobiłem takie coś:

select DEPT_NO, DEPARTMENT from Department
UNION
select -1, 'Wszystkie działy' from EMPLOYEE

za employee mozna podstawic dowolna istniejaca tabele,
Efekt jest, ale to kiepska metoda...

1

użyj UNION ALL, a nie union

SELECT DEPT_NO, DEPARTMENT FROM Department
UNION ALL
SELECT -1, 'Wszystkie działy' FROM RDB$DATABASE
0

dzięki,
ale dlaczego mam użyć
UNION ALL zamiast zwykłego UNION?

nie chce mieć powtórek, a dodatkowo po
UNION - dodany wiersz jest na początku (podoba mi się tak)
UNION ALL - dodany wiersz jest na końcu (nie chce:-) )

0
Johny_Morfina napisał(a)

ale dlaczego mam użyć UNION ALL zamiast zwykłego UNION?

nieco większa wydajność, bo nie trzeba distincta zastosować "niejawnie"

Johny_Morfina napisał(a)

nie chce mieć powtórek, a dodatkowo po

to zapytanie SELECT DEPT_NO, DEPARTMENT FROM Department wygląda jakby dawało unikalne wartości, więc chyba powtórki ci tu nie grożą

Johny_Morfina napisał(a)

UNION - dodany wiersz jest na początku (podoba mi się tak) UNION ALL - dodany wiersz jest na końcu (nie chce:-) )

:D użyj order by lub odwrotnie połącz zapytania

SELECT -1, 'Wszystkie działy' FROM RDB$DATABASE
UNION ALL
SELECT DEPT_NO, DEPARTMENT FROM Department

Generalnie wiedzę że jesteś świadomy różnicy między UNION a UNION ALL. Zwróciłem uwagę dlatego że spotkałem się kilka razy u mniej doświadczonych programistów z tym że ta różnica nie była im znana.

0
SELECT -1, 'Wszystkie działy' FROM EMPLOYEE

WTF?
A słyszałeś o czymś takim jak VALUES?

0

O VALUES słyszałem tylko w kontekście INSERT'a.
Nie wiem jak użyć tego aby zadziałał SELECT bez podawania tabeli z której maja być pobrane dane.

Nie jestem ekspertem sql'a. jeśli masz jakiś przykład to chętnie zobaczę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1