यह मेरा संग्रहीत प्रक्रिया में से एक का एक वर्ग है:SQL सर्वर में कोई तालिका चर खाली है या नहीं, यह जांचने के लिए कैसे करें?
(SELECT T FROM @dataInTable) IS NULL
यह काम करता है:
@dataInTable dbo.Table_Variable readonly,
....
AND (
(@dataInTable IS NULL)
OR
(item IN (SELECT T FROM @dataInTable))
)
@dataInTable IS NULL
वाक्य रचना में गलत है, त्रुटि
Must declare the scalar variable "@dataInTable"
तो मैं में बदल दें लेकिन अगर @dataInTable
में 1 से अधिक आइटम हैं, तो मुझे एक त्रुटि मिलती है:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
बोधगम्य तो मैं यह करने के लिए बदलने के लिए:
(SELECT TOP(1) T FROM @ProgramRatings) IS NULL
निर्माण पूरी तरह से, मैं क्या है प्रदर्शन चिंता का विषय है।
मैं सोच रहा हूँ, अगर वहाँ है कि क्या एक तालिका चर रिक्त है की जांच करने के
AND (
(@dataInTable IS EMPTY)
OR
(item IN (SELECT T FROM @dataInTable))
)
+1 'EXISTS'' COUNT' से अधिक कुशल हो सकता है क्योंकि यह पहली पंक्ति के बाद बंद हो जाता है। –
धन्यवाद, मैंने अस्तित्व की कोशिश की लेकिन इसे किसी चयनित स्थिति के अंदर उपयोग नहीं किया जा सकता है: और ( (मैं यहां मौजूद नहीं हो सकता) या (आइटम में (@ डेटाटाटेबल से चुनें T)) )। क्या आप सही वाक्यविन्यास –
@EricYin जानते हैं यदि आप इसे 'SELECT' में उपयोग करना चाहते हैं तो शायद आप' केस 'की तलाश में हैं। यह जानने में मुश्किल है कि आप अब तक पोस्ट किए गए टुकड़ों के आधार पर क्या कर रहे हैं। –