Ich muss einen subselect tun, wenn die Zeichenfolge 'DebugData' Ziffern enthält. Aber in Google große Abfrage, bekomme ich den Fehler "Subselect nicht erlaubt in Select-Klausel". Jede Hilfe würde geschätzt werden !!Wählt innerhalb von case-Anweisungen in Google große Abfrage
%%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
habe ich versucht, dies aber nicht funktioniert:
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
Ich habe zwei where-Anweisungen, eine für die Hauptauswahl und eine weitere für Subselect. Ich bin mir nicht sicher, wie man zwei Where's für zwei Selects benutzt. – user3447653
Verwenden Sie eine 'WHERE'-Anweisung und kombinieren Sie sie mit' AND'. – Barmar
Ich habe den obigen Code versucht (Hinzugefügt den Code in meinem Hauptabschnitt), aber das funktioniert nicht .. – user3447653