سؤال

وبالنظر الى اثنين من الجداول بسيطة مثل ذلك:

create table R(foo text);
create table S(bar text);

إذا كان لي أن نقابة معا في استعلام، ماذا أسميه العمود؟

select T.????
from (
    select foo
    from R
    union
    select bar
    from S) as T;

والآن، في الخلية، ويمكنني أن يبدو الرجوع إلى عمود T ك "فو" - اسم العمود مطابقة للعلاقة الأولى في الاتحاد. في sqlite3، ومع ذلك، لا يبدو أن العمل. هل هناك طريقة للقيام بذلك وهذا هو المعيار في جميع تطبيقات SQL؟

إذا لم يكن كذلك، فكيف لمجرد sqlite3؟

وتصحيح: sqlite3 لا تسمح لك للإشارة إلى العمود T ك 'فو' على كل حال! عفوا!

هل كانت مفيدة؟

المحلول

وعلى الرغم من وجود قاعدة مكتوبة، يمكننا استخدام أسماء الأعمدة من الاستعلام الفرعي الأول في استعلام توحيد لجلب نتائج الاتحاد.

نصائح أخرى

وفي محاولة لإعطاء اسم مستعار إلى أعمدة؛

select T.Col1
from (
    select foo as Col1
    from R
    union
    select bar as Col1
    from S) as T;

وأو إذا كان اسم العمود هو ليس من الضروري ثم T. * سوف يكون كافيا.

ما عليك سوى الأسماء المستعارة العمود فقط في أول حدد (اختبار في SQL Server 2008 R2)

select T.Col1
from (
    select 'val1' as Col1
    union
    select 'val2'
    union
    select 'val3'     
) as T;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top