Teradata SQL: حدد حرفيًا
سؤال
أرغب في استخدام قائمة بالأرقام التعسفية كنوع من المدخلات إلى Select. الخيار A ، بالطبع ، هو إنشاء جدول مؤقت يحتوي على القيم فقط (على سبيل المثال ، 1،2،3).
آمل أن تعرف الناس ما هو الخيار> A.
لنفترض أن البيان يشبه:
select Fx,
XXXXXX as Foo
from MyTable
where MyTest depends on each XXXXXX
لذا ، إذا كان بإمكاني جعل XXXXXX قائمة بالقيم (1،2،3) ، فسوف يكون لدي نتائج مثل:
My val | Foo
-------+---
cat | 1
mouse | 2
cheesecake | 3
مرة أخرى ، يمكنني الحصول على المدخلات من جدول ، لكنني أفضل ألا يكون ذلك ضروريًا. المعلمون ، من فضلك تتناغم.
تيا.
المحلول
من المحتمل أن تجد النجاح باستخدام وظيفة إجمالي نافذة ROW_Number ().
ترتيب عشوائي
SELECT CALENDAR_DATE
, ROW_NUMBER()
OVER (ORDER BY 1)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE
;
أو طلب العمود
SELECT CALENDAR_DATE
, ROW_NUMBER()
OVER (ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2010-06-01' AND DATE
;
أو التقسيم بواسطة عمود آخر لإعادة تشغيل التسلسل
SELECT CALENDAR_DATE
, YEAR_OF_CALENDAR
, ROW_NUMBER()
OVER (PARTITION BY YEAR_OF_CALENDAR
ORDER BY CALENDAR_DATE)
FROM SYS_CALENDAR.CALENDAR
WHERE CALENDAR_DATE BETWEEN DATE '2009-11-01' AND DATE
;
;
لا تنتمي إلى StackOverflow