Dela via


Parametersyntax för mustasch

Viktigt!

Parametersyntaxen för Mustache stöds endast i den äldre SQL-redigeraren. Databricks rekommenderar att du använder namngivna parametermarkörer för nya frågor. Om du kopierar en fråga med mustaschsyntax till en notebook-fil, AI/BI-instrumentpanelsdatauppsättningsredigerare eller Genie-utrymme måste du konvertera den till namngivna parametermarkörer innan den körs.

I den äldre SQL-redigeraren behandlas alla strängar som omsluts av dubbla klammerparenteser ({{ }}) som en frågeparameter. En widget visas ovanför resultatfönstret där du anger parametervärdet.

Lägga till en mustaschparameter

  1. Tryck på Cmd + I. Parametern infogas vid markörens position och dialogrutan Lägg till parameter visas.
  2. Ange nyckelordet, ändra rubrik och välj en typ.
  3. Klicka på Lägg till parameter.
  4. Ange parametervärdet i widgeten.
  5. Klicka på Tillämpa ändringar.
  6. Klicka på Spara.

Du kan också skriva {{ }} direkt i frågan och klicka på kugghjulsikonen i parameterwidgeten för att konfigurera den.

Om du vill köra frågan igen med ett annat värde uppdaterar du widgeten och klickar på Tillämpa ändringar.

Redigera, ta bort och ändra ordning på parametrar

Redigera: Klicka på kugghjulsikonen bredvid parameterwidgeten. Om du vill förhindra att användare som inte äger frågan ändrar parametervärdet klickar du på Visa endast resultat.

Ta bort: Ta bort parametermarkören från frågan. Widgeten tas bort automatiskt.

Ändra ordning: Klicka och dra parameterwidgetar till önskad ordning.

Widgettyper

Följande widgettyper är tillgängliga:

Text

Tar en sträng som indata. Omvänt snedstreck, enkla och dubbla citattecken är undantagna automatiskt. Azure Databricks lägger till citattecken runt värdet.

SELECT * FROM samples.tpch.customer WHERE c_name = {{ name_param }}

Siffra

Tar ett tal som indata.

SELECT * FROM users WHERE age = {{ number_param }}

Datum och tid

Parameteriserar datum- och tidsstämpelvärden. Det finns tre alternativ:

Type Noggrannhet
Datum Dag
Datum och tid Minut
Datum och tid (med sekunder) Sekund

Alla datum- och tidsvärden skickas som strängliteraler och måste omslutas med enkla citattecken i din fråga:

SELECT * FROM usage_logs WHERE date = '{{ date_param }}'

När du väljer alternativet Range skapar Azure Databricks två parametrar med .start och .end suffix:

SELECT * FROM usage_logs
WHERE modified_time > '{{ date_range.start }}'
AND modified_time < '{{ date_range.end }}'

Anmärkning

Widgeten Datumintervall returnerar endast korrekta resultat för DATEkolumner av typen -. För tidsstämpelkolumner använder du en widget för datum och tidsintervall.

Dynamiska datumvärden: Datumwidgetar innehåller en blå blixtikon. Klicka på den för att välja dynamiska värden som today, yesterday, this week, last week, last montheller last year. Dessa värden uppdateras automatiskt.

Viktigt!

Dynamiska datumvärden är inte kompatibla med schemalagda frågor.

Begränsar indata till en fördefinierad statisk lista. Stödjer både enkelvärdes- och flervärdesval.

  • Enskilt värde: Omslut parametern med enkla citattecken i frågan.

  • Flera värden: Aktivera Tillåt flera värden i widgetinställningarna. Använd alternativet Citat för att styra om värden är omslutna med enkla citattecken, dubbla citattecken eller inga. WHERE Uppdatera satsen så att den använder IN:

    SELECT * FROM orders WHERE status IN ( {{ status_param }} )
    

    Med dubbla citattecken markerade resulterar frågan i: WHERE status IN ("value1", "value2", "value3").

Rullgardinsmenyns värden är strängar. Om du vill använda datum eller tidsstämplar anger du dem i det format som datakällan kräver.

Query-Based listruta

Fyller alternativ för listrutan från en sparad fråga. Fungerar som listrutan, men alternativen är dynamiska.

  1. Under Typ i inställningspanelen väljer du Frågebaserad listruta.
  2. Klicka på fältet Fråga och välj en sparad fråga.

Om frågan returnerar mer än en kolumn använder Azure Databricks den första kolumnen. Om frågan returnerar kolumner med namnet name och value, visar widgeten name-kolumnen, men skickar den associerade value till frågan vid körning.

Exempel:

SELECT user_uuid AS 'value', username AS 'name' FROM users
value Namn
1001 John Smith
1002 Jane Doe
1003 Bobby-tabeller

Värdet som skickas till databasen vid körning är 1001, 1002 eller 1003, inte visningsnamnet.

Anmärkning

Prestanda försämras om källförfrågan returnerar ett stort antal dataposter.