/ / केवल सेक्शन क्लॉज (यानी FROM क्लॉज के बिना SELECT का उपयोग करके) के साथ कई पंक्तियों और स्तंभों के साथ तालिका कैसे बनाएं

केवल चयन खंड का उपयोग करके एकाधिक पंक्तियों और स्तंभों के साथ तालिका कैसे बनाएं (यानी खंड से बिना चयन का उपयोग करके) - एसक्यूएल, एसक्यूएल-सर्वर, tsql

मुझे पता है कि SQL सर्वर में, FROM क्लॉज के बिना सेलेक्ट क्लॉज का उपयोग कर सकते हैं, और एक पंक्ति और एक कॉलम के साथ एक टेबल बना सकते हैं

SELECT 1 AS n;

लेकिन मैं सिर्फ सोच रहा था, क्या FROM क्लॉज के बिना सेलेक्ट क्लॉज का इस्तेमाल संभव है, बनाने के लिए

  1. एक स्तंभ और कई पंक्तियों वाली तालिका

  2. कई स्तंभों और एक पंक्ति के साथ एक तालिका

  3. कई स्तंभों और कई पंक्तियों वाली तालिका

मैंने कई संयोजनों की कोशिश की है जैसे कि

SELECT VALUES(1, 2) AS tableName(n, m);

कोई सफलता नहीं।

उत्तर:

जवाब के लिए 3 № 1

आप इसे सीटीई और उपयोग करके कर सकते हैं union(प्रयोग union all यदि आप डुप्लिकेट प्रदर्शित करना चाहते हैं)

सभी 3 परिदृश्यों के लिए रेक्सटेस्टर नमूना

  • एक कॉलम और कई पंक्तियाँ

    with tbl1(id) as
    (select 1 union all
    select 2)
    select * from tbl1;
    
  • एक पंक्ति और कई कॉलम

    with tbl2(id,name) as
    (select 1,"A")
    select * from tbl2;
    
  • कई कॉलम और कई पंक्तियाँ

    with tbl3(id,name) as
    (select 1,"A" union all
    select 2,"B")
    select * from tbl3;
    

जवाब के लिए 2 № 2
-- One column, multiple rows.
select 1 as ColumnName union all select 2; -- Without FROM;
select * from ( values ( 1 ), ( 2 ) ) as Placeholder( ColumnName ); -- With FROM.

-- Multiple columns, one row.
select 1 as TheQuestion, 42 as TheAnswer; -- Without FROM.
select * from ( values ( 1, 42 ) ) as Placeholder( TheQuestion, TheAnswer ); -- With FROM.

-- Multiple columns and multiple rows.
select 1 as TheQuestion, 42 as TheAnswer union all select 1492, 12; -- Without FROM.
select * from ( values ( 1, 2 ), ( 2, 4 ) ) as Placeholder( Column1, Column2 ); -- With FROM.

उत्तर № 3 के लिए 1

आप वह सब कर सकते हैं, जिसका उपयोग करके UNION कीवर्ड

create table tablename as select 1 as n,3 as m union select 2 as n,3 as m

ओरेकल में यह दोहरी होगी:

create table tablename as select 1 as n,3 as m from dual union select 2 as n,3 as m from dual

उत्तर के लिए 1 № 4

आप UNION ऑपरेटर का उपयोग कर सकते हैं:

CREATE TABLE AS SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

UNION ऑपरेटर डिफ़ॉल्ट रूप से केवल भिन्न मानों का चयन करता है। डुप्लिकेट मानों की अनुमति देने के लिए आप UNION ALL का उपयोग कर सकते हैं।
परिणाम-सेट में कॉलम नाम आमतौर पर यूनिअन में पहले सेलेक्ट स्टेटमेंट में कॉलम नामों के बराबर होते हैं।


उत्तर के लिए 1 № 5

इसे इस्तेमाल करे:

--1) a table with one column and multiple rows
select * into tmptable0 from(
select "row1col1" as v1
union all
select "row2col1" as v1
) tmp

--2) a table with multiple columns and one row
select  "row1col1" as v1, "row1col2" as v2 into tmptable1

--3) a table with multiple columns and multiple rows
select * into tmptable2 from(
select "row1col1"  as v1, "row1col2" as v2
union all
select "row2col1" as v2, "row2col2" as v2
) tmp