sql - मल्टी स्तंभ में मौजूद बयान




sql-server-2008-r2 (3)

आपका सबसे अच्छा शर्त शायद एक सबक्वेंसी के साथ सम्मिलित वक्तव्य का उपयोग करना है। कुछ इस तरह:

एसक्यूएल सम्मिलित करें w / सबक्विरी में - यदि नहीं मौजूद है तो जांच रहा है

संपादित करें: यदि आप अभी भी फंस गए हैं, तो यह प्रयास करें -

INSERT INTO #T (Name, Unit, Id)
SELECT Name, Unit, Id
FROM #T1 
WHERE 
    NOT EXISTS (SELECT Name, Unit, Id FROM #T
        WHERE #T.Name = #T1.Name AND #T.Unit = #T1.Unit AND #T.Id = #T1.Id)

मैं डेटा को दूसरे से एक डेटा में डालने की कोशिश कर रहा हूं जहां डेटा मौजूद नहीं है

तालिका में मैं डेटा डालने में हूँ

CREATE TABLE #T(Name VARCHAR(10),Unit INT, Id INT)
INSERT INTO #T
    VALUES('AAA',10,100),('AAB',11,102),('AAC',12,130)

मैं जिस तालिका से डेटा का चयन कर रहा हूँ

CREATE TABLE #T1(Name VARCHAR(10),TypeId INT,Unit INT, Id INT)
INSERT INTO #T1
VALUES('AAA',3,10,100),('AAA',3,10,106)

इस मामले में मैं # टी 1 से ('AAA',3,10,106) का चयन करना चाहता हूं क्योंकि एएए, 106 संयोजन # टी में मौजूद नहीं है

असल में मैं जो चाहता हूँ अद्वितीय नाम और आईडी संयोजन को भरना है

मैंने नीचे की कोशिश की जो काम करने के लिए नहीं लगता है

SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT * FROM #T)

आपको किसी भी तरह से दो तालिकाओं को सहसंबंधित करना होगा:

SELECT *
FROM #T1 
WHERE NOT EXISTS(SELECT * 
                 FROM #T
                 WHERE #T1.Name = #T.Name AND #T1.ID = #T.ID)

उपर्युक्त क्वेरी अनिवार्य रूप से कहती है: मुझे तालिका #T1 उन रिकॉर्डों को प्राप्त करें जिनके पास एक ही Name और ID मान होने के संबंध में कोई संबंधित रिकॉर्ड नहीं है #T


यह आपके प्रश्न का बहुत आंशिक उत्तर है, लेकिन मुझे उम्मीद है कि अभी भी उपयोगी है।

माइक्रोसॉफ्ट एसक्यूएल सर्वर 2008 दो विशेषताएं लागू करता है जो पदानुक्रमित डेटा के प्रबंधन के लिए बेहद उपयोगी हैं:

  • HierarchyId डेटा प्रकार।
  • कीवर्ड के with प्रयोग करते हुए सामान्य टेबल एक्सप्रेशन।

शुरूआत के लिए एमएसडीएन पर केंट Tegels द्वारा "एसक्यूएल सर्वर 2008 के साथ अपने डेटा पदानुक्रम मॉडल" पर एक नज़र डालें। मेरा खुद का प्रश्न भी देखें: SQL सर्वर 2008 में रिकर्सिव समान-तालिका क्वेरी





sql sql-server-2008-r2