Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं एक आईएन स्टेटमेंट में मानों की सूची के साथ एक स्ट्रिंग कैसे प्रदान करूं?

डेगन।

आपको एक वास्तविक तालिका बनाने की आवश्यकता नहीं है। आप टेबल वैल्यूड फंक्शन का उपयोग कर सकते हैं और अपनी क्वेरी में इसका उपयोग कर सकते हैं उदा। नीचे के रूप में।

(DATEPART(dw, ThisDate) IN (SELECT [item] FROM dbo.fnSplit(@TheseDays, ',')))

यह http://www.eggheadcafe.com/ से TVF का उपयोग करता है समुदाय/एस्पनेट/13/10021854/fnsplit.aspx )

CREATE FUNCTION dbo.fnSplit(
    @sInputList VARCHAR(8000) -- List of delimited items
  , @sDelimiter VARCHAR(8000) = ',' -- delimiter that separates items
) RETURNS @List TABLE (item VARCHAR(8000))

BEGIN
DECLARE @sItem VARCHAR(8000)
WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0
 BEGIN
 SELECT
  @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))),
  @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList))))

 IF LEN(@sItem) > 0
  INSERT INTO @List SELECT @sItem
 END

IF LEN(@sInputList) > 0
 INSERT INTO @List SELECT @sInputList -- Put the last item in
RETURN
END
GO



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डुप्लिकेट के कारण अनुक्रमणिका बनाने में असमर्थ जो मौजूद नहीं है?

  2. द्विदिश विदेशी कुंजी बाधा

  3. साल दर साल रिपोर्ट एसक्यूएल योग, एक शानदार समाधान की तलाश में

  4. Log4net कस्टम एपेंडर का उपयोग कर एसक्यूएल डेटाबेस में कस्टम ऑब्जेक्ट लिख रहा है?

  5. एसक्यूएल एक पंक्ति से एकाधिक पंक्ति कैसे बनाएं