Verwendung von" DASS "und "ORDER BY" - Klausel in sql
Habe ich die sql-Abfrage, wie unten gezeigt, die sql server sagt, dass Ihre Fehler HABEN und ORDER bY irgendwelche Fehler mit der syntax in der Nähe von HAVING und ORDER BY, kann jemand helfen.
SELECT Id,
Name1,
ZipCode,
StreetName,
StreetNumber,
State1,
Lat,
Lng,
Keyword,
( 6371 * ACOS( COS( (12.925432/57.2958) ) * COS( (Lat/57.2958) ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) + SIN( 12.925432/57.2958 ) * SIN( Lat/57.2958 ) ) ) AS distance
FROM Business_Details
HAVING (distance < 1.5) and (Keyword like '%plumber%')
ORDER BY distance ;
InformationsquelleAutor mahesh | 2010-08-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
where
hier statthaving
.having
ist hilfreich bei der Eingrenzung von Bedingungen, die auf aggregierte Werte.where
ist hilfreich bei der Eingrenzung von Bedingungen, die auf un-aggregierte Daten.Update
SQL Server ist nicht MySQL, was funktioniert auf der einen ...
Arbeit
re-enginerred, bevor es funktionieren wird.
Sollte dies sein, was Sie brauchen
Nachdem die Ursache des Fehlers, können Sie nicht verwenden, ohne hinzufügen einer Gruppe von. Es scheint klar, aus der SQL-Code der Benutzer versucht, den Einsatz der Having-Klausel im Rahmen der Where-Klausel.
Tatsächlich, können Sie eine HAVING ohne GROUP BY-Klausel. Diese SQL-läuft wunderbar: SELECT COUNT(*) FROM sys.Datenbanken MIT MAX(database_id) < 100
Danke für die Antwort In diesem speziellen Artikel code.google.com/apis/maps/articles/phpsqlsearch.html Sie haben die folgende Abfrage mit having-und order by-Klausel Sie sind mit dem mysql-server, ich bin mit sql server 2005 macht es einen Unterschied in der Abfrage SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) Die Entfernung VON Markierungen MIT Abstand < 25 ORDER BY distance LIMIT 0 , 20;
Ja, es wird einen Unterschied machen.
InformationsquelleAutor Binary Worrier
Habe, ist in der Regel verwendet in Verbindung mit einer GROUP BY-Anweisung. DASS ist wie der, WO für die resultierenden Gruppen.
InformationsquelleAutor hqrsie
Jeder hat schon erwähnt, dass MIT ist für aggregierte Daten, wie z.B. SUM und MIN und du kannst die beiden Bedingungen in Ihrer WHERE-Klausel.
Für was es Wert ist (kann ich nicht testen im Moment) und hoffentlich-Adresse deiner eigentlichen Frage, es ist meine Erfahrung gewesen, dass Sie nicht verwenden können, einen Spaltenalias in der HAVING-Klausel befinden, und müssen explizit schreiben die Gleichung für die Spalte gibt es statt des alias.
Sehen diese Frage für mehr details.
InformationsquelleAutor Brandon Horsley
InformationsquelleAutor Michael Pakhantsov