Ich habe Breitengrad numerisch in einer Tabelle gespeichert (Beispiel 18.1659). Ich verwende eine Merge-Anweisung, um diese Daten in eine andere Tabelle zu übertragen. Alle Arbeiten mit Ausnahme der Daten werden nur als "18" in die neue Tabelle eingegeben. Beide Felder sind numerisch, was ich in Firebird genau fand. Wie kann ich das umgehen und die ausgewählten Daten exakt in die neuen Felder eingeben. Hier ist der Sql, den ich benutzt habe.Numerische Genauigkeit in der Zusammenführungsanweisung in Firebird erhalten
merge into notary n
using (select lat from Zip_codes where zipcode = n.zip) z
on (n.zip = z.zipcode)
when matched then update set lat = z.lat
Ich habe versucht, Cast als doppelte Genauigkeit, aber das hat auch nicht funktioniert. Wenn ich verstehen würde, warum es passiert, könnte ich wahrscheinlich die Lösung herausfinden, aber ich bin mir nicht einmal sicher warum. Dank
Dialekt 3 TABELLE: NOTARY GEBIETE: LAT NUMERIC (18,0) LNG NUMERIC (18,0)
TABELLE: ZIP_CODES GEBIETE: LAT NUMERIC (18,5) LNG NUMERIC (18,5)
Bitte fügen Sie dem Thema den SQL-Dialekt Ihrer Datenbank und Deklarationen (Schemata) der beiden Tabellen, die Sie verwenden –
persönlich Ich würde nur alle Breiten als Int64 nach multiplizieren sie durch tausend speichern :-) –
auch keinen Punkt dort mit abgeleiteten Tabellen, die den gesamten MERGE-Befehl vermissen. http://firebirdsql.su/doku.php?id=merge Einfach mit 'merge in notary n mit lat z auf n.zip = z.zipcode ......' –