4

U-SQL を使用した case または IF ステートメントの実装に関する提案があるかどうか疑問に思っています。たとえば、これを変換するにはどうすればよいですか:

SELECT
    FirstName, LastName,
    Salary, DOB,
    CASE Gender
        WHEN 'M' THEN 'Male'
        WHEN 'F' THEN 'Female'
    END
FROM Employees;
4

6 に答える 6

5

このような単純なことにはインライン C# 式を使用できます (ただし、まだテストしていません)。

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

より複雑な場合は、C# でユーザー定義演算子を作成することを検討してください。こちら
の MSDN チュートリアルをご覧ください。

于 2016-05-16T15:15:05.773 に答える
1

上記の解決策は正しいです。しかし、インライン C# コードの代わりに IF を使用したいと思います。

SELECT
    FirstName, LastName,
    Salary, DOB,
    IF(Gender == "Male", "M", "F") AS Gender
FROM Employees
于 2016-07-15T23:19:27.953 に答える
0

他の回答は正確に同等のものを提供しなかったため、以下に同じものを提供しています。

U-SQL での対応する式は次のとおりです。条件式 ( ?:) を使用する必要があります。詳細については、以下のリンクを参照してください。

? の C# 式:
TSQL および USQL に相当するもの

SELECT
    FirstName, LastName,
    Salary, DOB,
    (Gender == "M") ? "Male" : (Gender == "F") ? "Female" : "Unknown" AS Gender
FROM Employees;
于 2018-09-03T08:56:45.147 に答える