2012-03-12 15 views
11

मैंने कॉलेज में निवासी आवास के लिए एक आवेदन लिखा था। टेबल (कमरे) में से एक में मेरे पास सभी कमरों और उनके वर्तमान/अधिकतम अधिभोग की एक सूची है। अब, मैंने "सेमेस्टर" नामक एक नया कॉलम जोड़ा है और सभी मौजूदा पंक्तियों को "गिरावट" का सेमेस्टर मान रखने के लिए सेट किया है। अब मैं इन सभी पंक्तियों को तालिका में कॉपी और पेस्ट करना चाहता हूं लेकिन सेमेस्टर मान को "वसंत" में बदलना चाहता हूं। परिणाम के साथ शुरू होने वाली कई पंक्तियों के साथ दो गुना होना चाहिए - सेमेस्टर मूल्य में गिरावट के साथ आधा और गिरावट के साथ आधा। आश्चर्य है कि इसे पूरा करने का सबसे अच्छा तरीका क्या है?अलग-अलग मानों के साथ समान SQL तालिका में पंक्तियां कॉपी और पेस्ट करें

उत्तर

20
INSERT INTO rooms 
(roomname, current_occupancy, max_occupancy, semester) 
SELECT roomname, current_occupancy, max_occupancy,'spring' 
FROM rooms 
WHERE [semester]='fall' 

4
Insert Into Rooms 
    Select col1, col2, col3, 'Spring' as Semester -- select each column in order except 'Semester', pass it in literally as 'Spring' 
    From rooms where 
    Semester = 'Fall' 
1

खैर (अपने कमरे और अधिभोग स्तंभों के लिए नाम कल्पना करते हुए) अगर आप सिर्फ और Sql सर्वर प्रबंधन स्टूडियो के अंदर यह करने के लिए आप तालिका की प्रतिलिपि, तो अपडेट करें आदेश चला सकता है कोशिश कर रहे हैं क्लोन टेबल पर वसंत में सेमेस्टर सेट करें, फिर क्लोन तालिका से डेटा को मौजूदा तालिका में जोड़ने के लिए विज़ार्ड का उपयोग करें।

यदि आप एक प्रोग्रामिंग भाषा जानते हैं तो आप सभी डेटा खींच सकते हैं, सेमेस्टर संशोधित कर सकते हैं, फिर डेटा को मौजूदा तालिका में सम्मिलित कर सकते हैं।

नोट: अन्य उत्तर इसे प्राप्त करने का एक बेहतर तरीका है।

5

इसे आसान बनाने के लिए एक temp तालिका का उपयोग करें चाहे कितने कॉलम शामिल हों;

SELECT * INTO #ROOMS FROM ROOMS; 
UPDATE #ROOMS SET SEMESTER='spring'; 
INSERT INTO ROOMS SELECT * FROM #ROOMS; 
संबंधित मुद्दे