2
当字符串'DebugData'包含数字时,我必须执行子选择。但在谷歌大查询中,我收到错误“Subselect不允许内部选择子句”。任何帮助,将不胜感激 !!在Google大查询中选择内部case语句
%%sql --module Test2
DEFINE QUERY Test2
SELECT
HardwareId, DebugReason, DebugData,
CASE
WHEN lower(DebugData) LIKE 'ver%' THEN 'Verizon'
WHEN lower(DebugData) LIKE 'ro%' THEN 'Rogers'
WHEN REGEXP_MATCH(DebugData,'\\d+') THEN c.Network
(SELECT Network from [red-road-574:RawDebug.CarrierDetails] Where Mcc = SUBSTR(DebugData,0,3) and Mnc = SUBSTR(DebugData,4,7))
ELSE REGEXP_REPLACE(DebugData,'\\?',' ')
END
as ActualDebugData
FROM (TABLE_DATE_RANGE([bigdata:RawDebug.T], TIMESTAMP ('2016-05-15'),TIMESTAMP('2016-05-15')))
CROSS JOIN [bigdata:RawDebug.CarrierDetails] c
WHERE DebugReason = 50013
LIMIT 200
我尝试这样做,但这不是工作:
SELECT
DebugData,
CASE
WHEN lower(DebugData) LIKE 'jas%' THEN 'Jasper'
WHEN REGEXP_MATCH(DebugData,'\\d+') THEN c.Network
ELSE REGEXP_REPLACE(DebugData,'\\?',' ')
END
as ActualDebugData
FROM (TABLE_DATE_RANGE([bigdata:RawDebug.T],TIMESTAMP ('2016-05-15'),TIMESTAMP('2016-05-15')) d)
CROSS JOIN [bigdata:RawDebug.CarrierDetails] c
WHERE d.DebugReason = 50013 and c.Mcc = SUBSTR(DebugData,0,3)
LIMIT 200
我有两个where语句,一个用于主选择,另一个用于子选择。不知道如何使用两个选择的地方。 – user3447653
使用一个'WHERE'语句并将它们与'AND'结合使用。 – Barmar
我已经尝试了上面的代码(在我的主要部分添加了代码),但这不起作用。 – user3447653