2012-08-07 40 views
9

कैसे भरें मेरे पास एक सारणी है जिसमें दो कॉलम हैं जो मैं अन्य तालिका कॉलम डेटा चुनकर कॉलम में से एक भर दूंगा लेकिन मैं अगले कॉलम को कैसे भर सकता हूं क्योंकि मैं VALUE का उपयोग नहीं कर सकता। यहां कोडअन्य तालिका में एक और कॉलम चुनकर एक कॉलम में डालें लेकिन दूसरा कॉलम

INSERT INTO Numbers(number, val) SELECT LaptopID FROM Laptop WHERE Laptop.Pid = 2 

जैसा कि आप "वैल" कॉलम खाली छोड़ सकते हैं, मैं इसे कैसे भर सकता हूं?

+0

यही कारण है कि आप इसे में डाल करना चाहते हैं पर निर्भर करता है। क्या आप एक डिफ़ॉल्ट मान चाहते हैं, 'लैपटॉप' तालिका में संग्रहीत मूल्य, कोई मूल्य ('NULL') बिल्कुल नहीं, या कुछ और? * (इसके अलावा, एसक्यूएल सर्वर का कौन सा संस्करण? एसक्यूएल सर्वर, माईएसक्यूएल, ओरेकल?) * – MatBailie

+0

आप निम्नलिखित कर सकते हैं .. नंबरों में नंबर (संख्या, वैल) लैपटॉप चुनें, लैपटॉप से ​​1 लैपटॉप जहां .pid = 2 लेकिन आप क्या चाहते हैं दूसरे कॉलम में डालने के लिए सवाल होगा। – AJP

+0

मैं अगले कॉलम को किसी अन्य तालिका में संग्रहीत मान के साथ भरना चाहता हूं। यह एसक्यूएल सर्वर सीई –

उत्तर

19

उपयोग NULL स्तंभ यह अनुमति देता है:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, NULL 
FROM Laptop WHERE Laptop.Pid = 2 

या इरादा (hardcoded) मूल्य जो आप चाहते का उपयोग करें।

तो संख्या:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, 2 
FROM Laptop WHERE Laptop.Pid = 2 

या यदि पाठ:

INSERT INTO Numbers(number, val) 
SELECT LaptopID, 'val' 
FROM Laptop WHERE Laptop.Pid = 2 
+0

@ शेरविन- कोई समस्या नहीं –

+0

क्या हम यहां चर दे सकते हैं? 'नंबरों में प्रवेश करें (@columns) '?? –

+0

@columns: = 'कॉलम_1, कॉलम_2' –

1

आप इसे SELECT पर एक तर्क के रूप में जोड़ देंगे। उदाहरण के लिए:

INSERT INTO Numbers(number, val) 
    SELECT LaptopID, 'val' 
    FROM Laptop 
    WHERE Laptop.Pid = 2 
2

आप एक मान संबद्ध संख्या में जाने की जरूरत है कि नहीं है, तो; तो तुम सिर्फ शून्य या शून्य डाल सकते हैं:

INSERT INTO Numbers(number, val) SELECT L.LaptopID, OT.OTHER_COLUMN FROM Laptop L 
INNER JOIN OTHER_TABLE OT ON L.SOME_COLUMN = OT.ANOTHER_SOME_COLUMN 
WHERE Laptop.Pid = 2 
1

IMHO, आप, कुछ इस तरह एक अंदरूनी कि अन्य तालिका के साथ शामिल हों जरूरत एकाधिक तालिका अद्यतन आदि का समर्थन नहीं करता है, इसलिए मैंने निम्न विधि

SELECT Laptop.LaptopID, Table2.val FROM Laptop, Table2 WHERE 
Laptop.Pid = 2 or where laptop.pid= table2.pid 

फिर थोक डालने का उपयोग किया जी http://sqlcebulkcopy.codeplex.com/

आशा है कि यह मदद करता है :)

1

SQLCE:

somethign इस तरह ---

INSERT INTO numbers (number, val) 
SELECT NULL, laptopid 
    FROM laptop 
WHERE laptop.pid = 2