2013-11-20 7 views
85

के साथ टेम्पलेट तालिका में डेटा सम्मिलित करें मेरे पास एक मौजूदा क्वेरी है जो वर्तमान डेटा आउटपुट करती है, और मैं इसे टेम्प टेम्प में डालना चाहता हूं, लेकिन मुझे कुछ समस्याएं हो रही हैं। क्या किसी को यह करने के बारे में कुछ अंतर्दृष्टि होगी?क्वेरी

यहाँ एक उदाहरण

SELECT * 
FROM (SELECT Received, 
       Total, 
       Answer, 
       (CASE 
        WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' 
       END) AS application 
     FROM FirstTable 
     WHERE Recieved = 1 
       AND application = 'MORESTUFF' 
     GROUP BY CASE 
        WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' 
       END) data 
WHERE application LIKE isNull('%MORESTUFF%', '%') 

यह मेरा डेटा वर्तमान में जिस तरह से है कि मैं यह करने की जरूरत है उत्पादन करने लगता है, लेकिन मैं इसे एक अस्थायी तालिका में पारित कराना चाहते हैं। मेरी समस्या यह है कि मैं SQL क्वेरीज़ के लिए बहुत नया हूं और ऐसा करने का कोई तरीका नहीं ढूंढ पाया है। या यदि यह भी संभव है। यदि यह संभव नहीं है, तो क्या डेटा प्राप्त करने का एक बेहतर तरीका है जिसे मैं WHERE application LIKE isNull('%MORESTUFF%','%') को एक temp तालिका में ढूंढ रहा हूं?

किसी भी मदद की बहुत सराहना की जाएगी! धन्यवाद!

+2

एक 'temp' तालिका में जो पहले से मौजूद है या इसे एक नया बनाना होगा? –

+1

@ मार्टिनस्मिथ - यह एक नया होगा। – scapegoat17

उत्तर

112
SELECT * 
INTO #Temp 
FROM 

    (SELECT 
    Received, 
    Total, 
    Answer, 
    (CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END) AS application 
    FROM 
    FirstTable 
    WHERE 
    Recieved = 1 AND 
    application = 'MORESTUFF' 
    GROUP BY 
    CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END) data 
WHERE 
    application LIKE 
    isNull(
     '%MORESTUFF%', 
     '%') 
8

आप क्या कर सकते हैं कि इस तरह:

INSERT INTO myTable (colum1, column2) 
SELECT column1, column2 FROM OtherTable; 

बस डेटाप्रकार में के रूप में यकीन है कि कॉलम मिलान कर रहे हैं, दोनों संख्या में हैं।

21

ऐसा करने का सबसे तेज़ तरीका "SELECT INTO" कमांड का उपयोग कर रहा है उदा।

SELECT * INTO #TempTableName 
FROM.... 

यह एक नई तालिका तैयार करेगा, आपको इसे पहले से तैयार नहीं करना है।

+0

क्या #TempTableName में कॉलम जोड़ना संभव है? – FrenkyB

+0

@FrenkyB हाँ, एक बार टेबल बनने के बाद आप वैकल्पिक तालिका ADD COLUMN कथन –

86

एसक्यूएल सर्वर R2 2008 AS खंड इस प्रकार की जरूरत है:

SELECT * 
INTO #temp 
FROM (
    SELECT col1, col2 
    FROM table1 
) AS x 

क्वेरी अंत में AS x बिना असफल रहा।

+4

दिलचस्प का उपयोग कर सकते हैं। मुझे बस एक ही समस्या थी। अंत में "जैसा [x]" जोड़ना सब कुछ ठीक काम करता है। ऐसा क्यों है? – godfathr

+2

@godfathr ऐसा इसलिए है क्योंकि खंड से व्युत्पन्न तालिका का उपयोग कर रहा है – wootscootinboogie

2

इस प्रयास करें:

SELECT * 
INTO #Temp 
FROM 
(select * from tblorders where busidate ='2016-11-24' and locationID=12 
) as X 

एक्स के साथ अन्य नाम का उपयोग करें तो यह स्क्रिप्ट और परिणाम में विफल रहा है नहीं होगा।

2

व्यक्तिगत रूप से, मुझे इसका उपयोग करने के तरीके को समझने के लिए थोड़ा हाथ चाहिए और यह वास्तव में बहुत ही बढ़िया है।

SELECT * 
    INTO #TEMP 
    FROM (
    The query you want to use many times 
    ) AS X 

SELECT * FROM #TEMP WHERE THIS = THAT 
SELECT * FROM #TEMP WHERE THIS <> THAT 
SELECT COL1,COL3 FROM #TEMP WHERE THIS > THAT 

DROP TABLE #TEMP 
1
SELECT * INTO #TempTable 
FROM SampleTable 
WHERE... 

SELECT * FROM #TempTable 
DROP TABLE #TempTable 
0

यह संभव है। इस तरह से प्रयास करें:

Create Global Temporary Table 
BossaDoSamba 
On Commit Preserve Rows 
As 
select ArtistName, sum(Songs) As NumberOfSongs 
from Spotfy 
    where ArtistName = 'BossaDoSamba' 
group by ArtistName; 
संबंधित मुद्दे