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

WHERE स्टेटमेंट में CASE का उपयोग करना जब पैरामीटर में कई मान हों

अगर आपका @ServiceActivity कुछ इस तरह है 1,2,3

आप ऐसा कुछ कर सकते हैं

WHERE  `,1,2,3,` LIKE `%,1,%` 

इसलिए आप अपने वैरिएबल को फ़ॉर्मैट करें

WHERE  ',' + @ServiceActivity + ',' LIKE '%,' + ID + ',%'

SQL FIDDLE DEMO

SELECT *
FROM 
    (SELECT '1,2,3,4' as X UNION ALL
     SELECT '2,3,4,5' as X UNION ALL
     SELECT '3,4,5,6' as X UNION ALL
     SELECT '1,3,4,5' as X 
     ) as T
WHERE ',' + X + ','  LIKE  '%,1,%'

आपके मामले के लिए

(CASE WHEN @YESNOActivity = 'Yes' 
           THEN ',' + @ServiceActivity + ','
           ELSE NULL 
 END)
LIKE
(CASE WHEN @YESNOActivity = 'Yes' 
           THEN '%,' + TblActivity.ActivityServActId + ',%'
           ELSE 0 
 END) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2019 में फ़ाइलों को कॉपी करने का नया तरीका

  2. SQL कथन द्वारा तालिका में मैन्युअल रूप से सम्मिलित करें, लेकिन कुंजी स्वत:वृद्धि हुई है

  3. SQL सर्वर (T-SQL) में फ़ोन नंबर प्रारूपित करें

  4. SQL सर्वर 2008 से SQL सर्वर 2005

  5. SQL सर्वर 2005 में संकुल अनुक्रमणिका न होने के कारण