मान लें कि मेरे पास एक पूर्णांक कॉलम आईडी वाला एक टेबल है। मुझे missing numbers
को sequence
में अधिकतम लौटाई गई राशि के साथ खोजने की आवश्यकता है।
- अगर टेबल खाली है और मैं 10 मांग रहा हूं, तो उसे 1-10 नंबर वापस करने चाहिए।
- यदि तालिका में 1-5 है और मैं 10 मांग रहा हूं, तो इसे 6,7,8,9,10,11,12,13,14,15 नंबर वापस करना चाहिए।
- यदि तालिका में 1,2,4,6,9 है और मैं 10 मांग रहा हूं, तो उसे 3,5,7,8,10,11,12,13,14,15 नंबर वापस करना चाहिए
मैं इसे MS SQL
का उपयोग करके एक ही प्रश्न में कैसे प्राप्त कर सकता हूं?
अग्रिम में धन्यवाद!
2 जवाब
ये कोशिश करें:
यदि आपको अधिक संख्या प्राप्त करने की आवश्यकता है, तो बस WHERE Number<=100
बढ़ा दें।
DECLARE @Tab1 TABLE (ID INT)
INSERT INTO @Tab1 VALUES(1)
INSERT INTO @Tab1 VALUES(3)
INSERT INTO @Tab1 VALUES(5)
INSERT INTO @Tab1 VALUES(7)
INSERT INTO @Tab1 VALUES(9)
;WITH CTE AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number + 1 FROM CTE
WHERE Number<=100
)
SELECT TOP 5 *
FROM CTE
WHERE Number NOT IN(SELECT ID FROM @Tab1)
ORDER BY Number
OPTION (maxrecursion 0);
मौजूदा मान:
Number
1
3
5
7
9
आउटपुट:
Number
2
4
6
8
10
आशा है कि यह आपकी मदद करता है।
where
स्थिति में CTE
के अंदर मान बढ़ाते हैं।
यह काम करना चाहिए
संख्याओं के साथ एक सिस्टम टेबल भी है
declare @T table (i int primary key);
insert into @T values (1), (2), (4), (6), (9);
declare @count int = 10;
declare @size int = (select count(*) from @T);
with cte as
( select 1 as num
union all
select num + 1
from cte
where num + 1 <= (@count + @size)
)
select top (@count) cte.num
from cte
left join @T t
on t.i = cte.num
where t.i is null
order by cte.num
option ( MaxRecursion 0 );
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
sql
संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।