ASOF-JOIN-Syntax: Eingeschränkte Verwendung von Schlüsselwörtern (Ausstehend)

Achtung

Diese Verhaltensänderung ist in Bundle 2024_01 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

Das ASOF-JOIN-Feature verhält sich wie folgt:

Vor der Änderung

Die Verwendung von ASOF und MATCH_CONDITION als Objektnamen und Aliasnamen ist nicht eingeschränkt.

Nach der Änderung

ASOF und MATCH_CONDITION sind neue Schlüsselwörter. Die Verwendung dieser Schlüsselwörter in der SELECT-Befehlssyntax ist eingeschränkt.

Namen von Objekten

Wenn eine SELECT-Anweisung ASOF oder MATCH_CONDITION als Name einer Tabelle, einer Ansicht oder einer Inline-Ansicht verwendet, ist folgende Identifizierung erforderlich:

  • Wenn das Objekt mit doppelten Anführungszeichen im Namen erstellt wurde, verwenden Sie denselben Namen in doppelten Anführungszeichen.

  • Wenn das Objekt ohne Anführungszeichen im Namen erstellt wurde, verwenden Sie doppelte Anführungszeichen und Großbuchstaben.

Die folgenden Anweisungen sind zum Beispiel nicht mehr zulässig und geben Fehler zurück:

SELECT * FROM asof;
WITH match_condition AS (SELECT * FROM T1)
  SELECT * FROM match_condition;
Copy

Wenn Sie die Objekte mit doppelten Anführungszeichen erstellt haben, beheben Sie das Problem, indem Sie doppelte Anführungszeichen verwenden:

SELECT * FROM "asof";
WITH "match_condition" AS (SELECT * FROM T1)
  SELECT * FROM "match_condition";
Copy

Wenn Sie die Objekte ohne doppelte Anführungszeichen erstellt haben, beheben Sie das Problem, indem Sie doppelte Anführungszeichen und Großbuchstaben verwenden:

SELECT * FROM "ASOF";
WITH "MATCH_CONDITION" AS (SELECT * FROM T1)
  SELECT * FROM "MATCH_CONDITION";
Copy

Bemerkung

Snowflake empfiehlt, dass Sie diese Objektnamen in Ihren Anwendungen nicht mehr verwenden.

Namen von Aliassen

Wenn eine SELECT-Anweisung ASOF oder MATCH_CONDITION als Alias verwendet, müssen Sie AS vor dem Alias verwenden oder den Alias in doppelte Anführungszeichen setzen. Die folgenden Anweisungen sind zum Beispiel nicht mehr zulässig und geben Fehler zurück:

SELECT * FROM t1 asof;
SELECT * FROM t2 match_condition;
Copy

Zur Behebung des Problems gibt es folgende Optionen:

SELECT * FROM t1 AS asof;
SELECT * FROM t1 "asof";
SELECT * FROM t2 AS match_condition;
SELECT * FROM t2 "match_condition";
Copy

Ref.: 1138