कुछ उत्तर आपको बता सकते हैं कि Oracle में तालिका चर हैं, और यह कुछ हद तक करता है। हालाँकि, अधिकांश उत्तर आपको बताएंगे कि आपको Oracle में ऐसा बिल्कुल नहीं करना चाहिए; बस कोई ज़रूरत नहीं है।
आपके मामले में मैं बस एक सीटीई का उपयोग करूंगा:
with users as (
select 1001 as ID, 'Bob' as Name, 25 as Age, 'M' as Gender from dual
union
select 1021 as ID, 'Sam' as Name, 29 as Age, 'F' from dual
)
, grades as (
select 1001 as UserID , 120 as ClassID, 4 as Grade from dual
Union
select 1001 as UserID , 220 as ClassID, 2 as Grade from dual
Union
select 1021 as UserID , 130 as ClassID, 4 as Grade from dual
Union
select 1021 as UserID , 230 as ClassID, 4 as Grade from dual
Union
select 1021 as UserID , 340 as ClassID, 2 as Grade from dual
)
select u.ID, u.Name, AVG(g.grade) as gpa
from users u
join grades g on u.ID = g.UserID
group by u.ID, u.Name
अद्यतन:जिस उत्तर को मैं लंबे समय से प्राप्त करने का प्रयास कर रहा हूं वह बेन की टिप्पणी में है जिसे मैं यहां शामिल करता हूं:"कोई चर नहीं है, जिसे आप फ्लाई पर बना सकते हैं और मानक SQL @wcm में अन्य तालिकाओं में शामिल हो सकते हैं, हां . कई अलग-अलग प्रकार के ऑब्जेक्ट बनाए जा सकते हैं जो आपको ऐसा करने की अनुमति देंगे, लेकिन ठीक वैसा नहीं जैसा आप T-SQL में करते हैं"।