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

ORACLE INSTR के बराबर SQL सर्वर

आप उस nth_appearance . पर हाजिर थे SQL सर्वर में मौजूद नहीं है।

बेशर्मी से किसी फ़ंक्शन की प्रतिलिपि बनाना (एसक्यूएल सर्वर में 4 पैरामीटर के साथ ओरेकल के INSTR के समतुल्य ) आपकी समस्या के लिए बनाया गया है (कृपया ध्यान दें कि @Occurs का उपयोग Oracle की तरह नहीं किया जाता है - आप "तीसरी उपस्थिति" निर्दिष्ट नहीं कर सकते हैं, लेकिन "3 बार होता है"):

CREATE FUNCTION udf_Instr
    (@str1 varchar(8000), @str2 varchar(1000), @start int, @Occurs int)
RETURNS int
AS
BEGIN
    DECLARE @Found int, @LastPosition int
    SET @Found = 0
    SET @LastPosition = @start - 1

    WHILE (@Found < @Occurs)
    BEGIN
        IF (CHARINDEX(@str1, @str2, @LastPosition + 1) = 0)
            BREAK
          ELSE
            BEGIN
                SET @LastPosition = CHARINDEX(@str1, @str2, @LastPosition + 1)
                SET @Found = @Found + 1
            END
    END

    RETURN @LastPosition
END
GO

SELECT dbo.udf_Instr('x','axbxcxdx',1,4)
GO


DROP FUNCTION udf_Instr
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. एक ही कुंजी वाला एक आइटम पहले ही जोड़ा जा चुका है डेटासेट सेट करने का प्रयास करते समय SSRS पर त्रुटि

  3. जहां क्लॉज (एसक्यूएल सर्वर 2008) में रैंकिंग-फ़ंक्शन व्युत्पन्न कॉलम का उपयोग करना

  4. SQL सर्वर अनुक्रमणिका प्रबंधन SQL सर्वर के लिए अनुक्रमणिका प्रबंधक का उपयोग करना

  5. क्या मुझे डेटाबेस कनेक्शन स्ट्रिंग में अधिकतम पूल आकार सेट करना चाहिए? अगर मैं नहीं करता तो क्या होता है?