[英]How to convert nested Oracle SQL statement to pySpark SQL?
嘗試將此 Oracle SQL 語句轉換為 SQL 語句:
SELECT
FROM
P_TIME_PERIODS TP_RaisedDate,
P_DCF_ACTIVITY,
INM_ACTIVITIES,
P_FINANCE_GROUPS,
P_CREW_HQS,
P_ACTIVITY_CODES,
P_ACTIVITIES,
(SELECT
DISTINCT
M_WW_TWRKAE00.CDE_dist,
M_WW_TWRKAE00.CDE_WR,
(SELECT DECODE(a.TXT_VALUE,NULL,a.FLG_VALUE,a.TXT_VALUE) FROM M_WW_TWRKAE00 a WHERE M_WW_TWRKAE00.cde_dist=a.cde_dist AND M_WW_TWRKAE00.cde_wr=a.cde_wr AND a.CDE_ATTRIBUTE='E911') ""Right1"",
(SELECT DECODE(a.TXT_VALUE,NULL,a.FLG_VALUE,a.TXT_VALUE) FROM M_WW_TWRKAE00 a WHERE M_WW_TWRKAE00.cde_dist=a.cde_dist AND M_WW_TWRKAE00.cde_wr=a.cde_wr AND a.CDE_ATTRIBUTE='E912') ""Left1"",
(SELECT DECODE(a.TXT_VALUE,NULL,a.FLG_VALUE,a.TXT_VALUE) FROM M_WW_TWRKAE00 a WHERE M_WW_TWRKAE00.cde_dist=a.cde_dist AND M_WW_TWRKAE00.cde_wr=a.cde_wr AND a.CDE_ATTRIBUTE='E913') ""Minor1"",
(SELECT DECODE(a.TXT_VALUE,NULL,a.FLG_VALUE,a.TXT_VALUE) FROM M_WW_TWRKAE00 a WHERE M_WW_TWRKAE00.cde_dist=a.cde_dist AND M_WW_TWRKAE00.cde_wr=a.cde_wr AND a.CDE_ATTRIBUTE='E914') ""Major1"",
`
DECODE(a.TXT_VALUE,NULL,a.FLG_VALUE,a.TXT_VALUE)
應該與
CASE WHEN a.TXT_VALUE IS NULL THEN a.FLG_VALUE ELSE a.TXT_VALUE END
但可以簡化為
COALESCE(a.TXT_VALUE, a.FLG_VALUE)
它適用於 Spark SQL 和 SQL 服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.