UNRESOLVED_COLUMN felklass
Det går inte att matcha en kolumn, variabel eller rutinparameter med namn <objectName>
.
Den här felklassen har följande härledda felklasser.
WITHOUT_SUGGESTION
Parametrar
- objectName: Namnet på kolumnen eller parametern som inte kan matchas.
WITH_SUGGESTION
Menade du något av följande? [<proposal>
]
Parametrar
- objectName: Namnet på kolumnen eller parametern som inte kan matchas.
- förslag: En kommaavgränsad lista över potentiella kandidater.
Förklaring
Azure Databricks genererar det här felet när det inte kan identifiera en identifierare i en kontext där den förväntar sig en kolumn, kolumnalias eller funktionsparameter.
Det finns flera orsaker till det här felet:
- Ett stavfel i kolumnnamnet eller parameternamnet.
- Du tänkte faktiskt ange en strängliteral och inte en identifierare.
- Kolumnen har bytt namn eller tagits bort med hjälp av ALTER TABLE
- Kolumnen ingick inte i urvalslistan för en underfråga.
- Kolumnen har bytt namn med hjälp av tabellaliaset eller kolumnaliaset.
- Kolumnreferensen är korrelerad och du angav inte LATERAL.
- Kolumnreferensen är till ett objekt som inte visas eftersom det visas tidigare i samma urvalslista eller inom en skalär underfråga.
Riskreducering
Hur du åtgärdar felet beror på orsaken:
Är stavningen av namnet och kvalificerarna felaktig?
Jämför med kolumnerna som erbjuds i
objectList
och åtgärda stavningen.Menade du att ange en strängliteral i stället?
Omslut literalen i enkla citattecken och inte back-ticks (accentgrav).
Utelämnades kolumnen från en underfråga?
Lägg till kolumnen i urvalslistan för underfrågan.
Refererar du till en kolumn i en tidigare relation i samma från-sats?
Lägg till nyckelordet
LATERAL
före underfrågan med den olösta kolumnen. Korrelerat frågestöd är begränsat. Du kan behöva skriva om (korrelera) frågan.Det är oklart varför kolumnen eller fältet inte kan matchas?
Se Kolumn, fält, parameter och variabelmatchning för en detaljerad beskrivning av namnmatchning.
Exempel
> 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