SQL-SELECT AUS ... ALS mit Datentyp-Bezeichner?
Ich habe ein problem mit einer SQL-Abfrage für Postgresql. Diese select-Klausel ist ein Beispiel aus einer Vorlesung über Datenbanken:
1 select t.CourseNr, t.StudentsPerCourse, g.StudentCount,
2 t.StudentsPerCourse/g.StudentCount as Marketshare
3 from (select CourseNr, count(*) as StudentsPerCourse
4 from taking
5 group by CourseNr) t,
6 (select count(*) as StudentCount
7 from Students) g;
Das problem ist der Marktanteil Spalte in Zeile 2. Beide StudentsPerCourse und StudentCount sind vom Typ integer.
Wenn mit diesem auf meiner Postgresql-Datenbank, der Marktanteil Spalte wird ausgewertet, wie ein int-Typ, während ich brauchen würde, float/numeric hier. Ich nicht finden, eine Weg, um den Datentyp anzugeben, die von der Suche der Postgresql-Dokumentation auf der SELECT-Klausel noch durch googeln. Gibt es eine (vorzugsweise SQL-standard) festlegen, die Spalte Typ-oder bin ich etwas fehlt hier?
InformationsquelleAutor VolkA | 2008-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
CAST() ein oder beide der Quell-Spalten als dezimal - /float - /real - /Doppel - /etc.-Typ.
Alternate casting-syntax "SELECT meinespalte::real FROM mytable;" aber ich denke, dass der CAST () - Funktion ist mehr tragbar - Sie sollten wahrscheinlich halten Sie sich.
Ich mag, dass die Kurzform: ich wünschte, es war besser unterstützt, zwischen den verschiedenen Anbietern.
Zum Beispiel:
CAST(0 AS bit) AS BooleanColumn
undCAST('' AS varchar(5000)) AS LooooongStringColumn
(in TSQL/SQL*Server, sowieso)InformationsquelleAutor Joel Coehoorn