Frage

Angenommen, ich muss in SQL auf ein mit einem Alias ​​versehenes Feld in der Klausel „haveing“ verweisen, aber der Alias ​​enthält Anführungszeichen. Wie mache ich das?

select (select...) as '005'
group by ...
having '005'>0
War es hilfreich?

Lösung

Ich glaube, Ihnen fehlt eine FROM-Klausel und Sie sollten Backticks anstelle von einfachen Anführungszeichen verwenden:

SELECT (SELECT ...) AS `005`
FROM table1
GROUP BY ...
HAVING `005` > 0

Es wäre hilfreich, wenn Sie Ihre vollständige Anfrage posten würden, da ich hier ein wenig schätze, was Sie tun möchten.

Andere Tipps

Der SQL-92-Standard definiert die Verwendung von doppelten Anführungszeichen für einen Spaltenalias anstelle von einfachen Anführungszeichen.In den meisten Datenbanken sind ungewöhnliche Zeichen nur zulässig, wenn Sie doppelte Anführungszeichen verwenden.

Allerdings unterstützen nicht alle Datenbanken den Verweis auf einen Spaltenalias (in derselben Abfrage) in der GROUP BY oder HAVING Klauseln.Für portable Abfragen empfehle ich nicht, auf einen Spaltenalias in zu verweisen GROUP BY oder HAVING Klauseln.Darüber hinaus ist die HAVING Die Klausel gilt für Aggregate. Das von Ihnen bereitgestellte vereinfachte Beispiel sollte einen Fehler auslösen, da keine Aggregatfunktion vorhanden ist (IE:COUNT, AVG, MIN/MAX usw.) wird auf dem durchgeführt 005 Spaltenalias.

Folgendes funktioniert bei mir unter MySQL 4.1:

  SELECT COUNT(*) AS "005"
    FROM TABLE t
GROUP BY ...
  HAVING `005` > 0
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top