UNRESOLVED_COLUMN hata sınıfı

SQLSTATE: 42703

Adı <objectName> olan bir sütun veya işlev parametresi çözümlenemiyor.

Bu hata sınıfı aşağıdaki türetilmiş hata sınıflarını içerir.

WITHOUT_SUGGESTION

Parametreler

  • objectName: Çözümlenemeyen sütunun veya parametrenin adı.

WITH_SUGGESTION

Aşağıdakilerden birini mi demek istedin? [<proposal>]

Parametreler

  • objectName: Çözümlenemeyen sütunun veya parametrenin adı.
  • teklif: Olası adayların virgülle ayrılmış listesi.

Açıklama

Azure Databricks, sütun, sütun diğer adı veya işlev parametresi beklediği bir bağlamda tanımlayıcı tanımlayamadığı her durumda bu hatayı oluşturur.

Bu hatanın birkaç nedeni vardır:

  • Sütun adında veya parametre adında yazım hatası.
  • Aslında tanımlayıcı değil dize değişmez değeri belirtmeyi amaçlamıştınız.
  • Sütun ALTER TABLE kullanılarak yeniden adlandırıldı veya bırakıldı
  • Sütun, bir alt sorgunun seçme listesine dahil değildi.
  • Sütun, tablo diğer adı veya sütun diğer adı kullanılarak yeniden adlandırıldı.
  • Sütun başvurusu bağıntılı ve yanal belirtmediniz.
  • Sütun başvurusu, aynı seçme listesinde veya skaler alt sorguda daha önce göründüğünden görünür olmayan bir nesneye yöneliktir.

Risk azaltma

Hatanın azaltılması nedene bağlıdır:

  • Ad ve niteleyicilerin yazım denetimi yanlış mı?

    içinde objectList sunulan sütunlarda karşılaştırma yapın ve yazım denetimini düzeltin.

  • Bunun yerine bir dize değişmez değeri mi belirtmek istiyorsunuz?

    Değişmez değeri tek tırnak içine alın ve arka çizgilerle (vurgu mezarı) kapatmayın.

  • Sütun bir alt sorgudan atlandı mı?

    Sütunu alt sorgunun seçme listesine ekleyin.

  • Aynı from yan tümcesindeki önceki bir ilişkideki bir sütuna mı başvuruda bulunuyorsunuz?

    Çözümlenmemiş sütunla LATERAL alt sorgudan önce anahtar sözcüğünü ekleyin. Bağıntılı sorgu desteği sınırlıdır. Sorguyu yeniden yazmanız (bağıntısını kaldırmanız) gerekebilir.

  • Sütun veya alanın neden çözümlenemediği belirsiz mi?

    Ad çözümlemesi hakkında ayrıntılı bir açıklama için Sütun, alan, parametre ve değişken çözümlemesine bakın.

Örnekler

> CREATE OR REPLACE TEMPORARY VIEW colors(cyan, magenta, yellow) AS VALUES(10, 20, 5);

-- The column reference has been misspelled
> SELECT jello FROM colors;
  [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `jello` cannot be resolved.
  Did you mean one of the following? [`colors`.`cyan`, `colors`.`yellow`, `colors`.`magenta`]

-- Correct the spelling
> SELECT yellow FROM colors;
 5

-- The qualifier has been misspelled
> SELECT color.yellow FROM colors;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `color`.`yellow` cannot be resolved.
 Did you mean one of the following? [`colors`.`cyan`, `colors`.`yellow`, `colors`.`magenta`]

-- Correct the spelling
> SELECT colors.yellow FROM colors;
 5

-- Forgot to quote a literal
> SELECT hello;
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `hello` cannot be resolved.

-- Use single quotes
> SELECT 'hello';

-- Used the wrong quotes for a literal
> SELECT `hello`;
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `hello` cannot be resolved.

-- Use single quotes instead
> SELECT 'hello';

-- Column "got lost" in a subquery.
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta
            FROM colors) AS c;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `yellow` cannot be resolved.
 Did you mean one of the following? [`c`.`cyan`, `c`.`magenta`]

-- Add the missing column
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c;
 10   20    5

-- Columns got renamed in the table alias
> SELECT cyan, magenta, yellow
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c(c, m, y);
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `cyan` cannot be resolved.
 Did you mean one of the following? [`c`.`c`, `c`.`m`, `c`.`y`];

-- Adjust the names
> SELECT c, m, y
    FROM (SELECT cyan, magenta, yellow
            FROM colors) AS c(c, m, y);
 10   20    5

-- A correlated reference
> SELECT * FROM colors, (SELECT cyan + magenta + yellow AS total_use);
 [UNRESOLVED_COLUMN.WITHOUT_SUGGESTION] A column or function parameter with name `cyan` cannot be resolved.

-- Add LATERAL to permit correation
> SELECT * FROM colors, LATERAL(SELECT cyan + magenta + yellow AS total_use);
 10    20     5    35

-- Or de-correlate
> SELECT *, cyan + magenta + yellow AS total_use FROM colors;
 10    20     5    35

-- A misspelled parameter name
> CREATE OR REPLACE FUNCTION plus(a INT, b INT) RETURNS INT RETURN arg1 + arg2;
 [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column or function parameter with name `arg1` cannot be resolved.
 Did you mean one of the following? [`plus`.`a`, `plus`.`b`]

-- Fix the names
> CREATE OR REPLACE FUNCTION plus(a INT, b INT) RETURNS INT RETURN a + b;
> SELECT plus(1, 2);
 3