U-SQL を使用した case または IF ステートメントの実装に関する提案があるかどうか疑問に思っています。たとえば、これを変換するにはどうすればよいですか:
SELECT
FirstName, LastName,
Salary, DOB,
CASE Gender
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
END
FROM Employees;
U-SQL を使用した case または IF ステートメントの実装に関する提案があるかどうか疑問に思っています。たとえば、これを変換するにはどうすればよいですか:
SELECT
FirstName, LastName,
Salary, DOB,
CASE Gender
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
END
FROM Employees;
このような単純なことにはインライン C# 式を使用できます (ただし、まだテストしていません)。
SELECT
FirstName, LastName,
Salary, DOB,
Gender == "Male" ? "M" : "F"
FROM Employees
より複雑な場合は、C# でユーザー定義演算子を作成することを検討してください。こちら
の MSDN チュートリアルをご覧ください。
上記の解決策は正しいです。しかし、インライン C# コードの代わりに IF を使用したいと思います。
SELECT
FirstName, LastName,
Salary, DOB,
IF(Gender == "Male", "M", "F") AS Gender
FROM Employees
他の回答は正確に同等のものを提供しなかったため、以下に同じものを提供しています。
U-SQL での対応する式は次のとおりです。条件式 ( ?:
) を使用する必要があります。詳細については、以下のリンクを参照してください。
? の C# 式:
TSQL および USQL に相当するもの
SELECT
FirstName, LastName,
Salary, DOB,
(Gender == "M") ? "Male" : (Gender == "F") ? "Female" : "Unknown" AS Gender
FROM Employees;