Die Implementierung einer Case-Anweisung in U-SQL

Frage mich, ob jemand Vorschläge zur Implementierung des case-oder IF-Anweisung mit der U-SQL. Zum Beispiel, wie konvertiere ich diese:

SELECT
    FirstName, LastName,
    Salary, DOB,
    CASE Gender
        WHEN 'M' THEN 'Male'
        WHEN 'F' THEN 'Female'
    END
FROM Employees;
InformationsquelleAutor enufeffizy | 2016-05-16



6 Replies
  1. 5

    Können Sie eine inline-C# – Ausdruck für einfache Dinge wie so (habe nicht testen Sie es allerdings noch nicht)

    SELECT
        FirstName, LastName,
        Salary, DOB,
        Gender == "Male" ? "M" : "F"
    FROM Employees
    

    Wenn es komplexer ist, betrachten Sie das schreiben einer user defined-operator in C#.

    Haben Sie einen Blick auf die MSDN-tutorial hier

  2. 2

    U-SQL unterstützt die ANSI – CASE Ausdruck gemäß den release-notes hier, seit dem Frühjahr 2018. Ein einfaches Beispiel:

    DECLARE @outputFile string = @"\output\output.csv";
    
    @Employees =
        SELECT *
        FROM (
            VALUES
            ( "w", "Bob", 1999, "31/12/1999", "M" ),
            ( "Sheena", "Easton", 1999, "31/12/1998", "F" )
            ) AS Employees(FirstName, LastName, Salary, dob, Gender);
    
    
    @output =
        SELECT FirstName,
               LastName,
               Salary,
               dob,
               CASE Gender
                   WHEN "M" THEN "Male"
                   WHEN "F" THEN "Female"
               END AS Gender
        FROM @Employees;
    
    
    OUTPUT @output
    TO @outputFile
    USING Outputters.Csv(quoting : false);
    
  3. 0

    Die Lösung oben ist korrekt. Aber ich würde es vorziehen, zu verwenden, WENN anstatt inline C# – code.

    SELECT
        FirstName, LastName,
        Salary, DOB,
        IF(Gender == "Male", "M", "F") AS Gender
    FROM Employees
    
  4. 0

    WÄHLEN

    FirstName, LastName,

    Gehalt, Geburtsdatum

    (Geschlecht == ‚M‘) ? „Männlich“

    (Geschlecht == ‚F‘) ? „Weiblich“ ALS Geschlecht


    VON den Beschäftigten;

    Dadurch wird die Arbeit an Ihrem Fall

  5. 0

    Andere Antworten bieten nicht das genaue äquivalent, ich bin die gleiche unten.

    Den entsprechenden Ausdruck in U-SQL ist. Wir haben die Verwendung von bedingten Ausdruck (?:). Für weitere Informationen, können Sie finden unten links:

    C# – Ausdrücke für ?:

    TSQL und USQL äquivalente

    SELECT
        FirstName, LastName,
        Salary, DOB,
        (Gender == "M") ? "Male" : (Gender == "F") ? "Female" : "Unknown" AS Gender
    FROM Employees;
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.