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

चरित्र के nवें अवसर का पता लगाकर SQLsever में सबस्ट्रिंग कैसे प्राप्त करें?

मुझे यकीन नहीं है कि मैं वास्तव में आपका प्रश्न समझ गया हूं, लेकिन मेरा अनुमान यहां है:

आप एक कस्टम Split write लिख सकते हैं फ़ंक्शन जो एक सीमांकक द्वारा विभाजित होता है (इस मामले में ; ) फिर आप ROW_NUMBER . का उपयोग कर सकते हैं किसी दिए गए इंडेक्स के साथ वांछित भाग प्राप्त करने के लिए (यहां 4)।

उदाहरण के लिए:

DECLARE @string VARCHAR(100); 
SET @string='field1;field2;field3;field4;field5;field6;field7'; 
DECLARE @index INT; 
SET @index = 4; 

WITH cte 
     AS (SELECT item, 
                rn=Row_number() 
                     OVER( 
                       ORDER BY item) 
         FROM   dbo.Split(@string, ';')) 
SELECT TOP 1 item 
FROM   cte 
WHERE  rn = @index 

यहां एक डेमो sql-fiddle पर।

यह मेरा स्प्लिट-फ़ंक्शन है:

CREATE FUNCTION [dbo].[Split]
(
    @ItemList NVARCHAR(MAX), 
    @delimiter CHAR(1)
)
RETURNS @IDTable TABLE (Item VARCHAR(50))  
AS      

BEGIN    
    DECLARE @tempItemList NVARCHAR(MAX)
    SET @tempItemList = @ItemList

    DECLARE @i INT    
    DECLARE @Item NVARCHAR(4000)

    SET @tempItemList = REPLACE (@tempItemList, ' ', '')
    SET @i = CHARINDEX(@delimiter, @tempItemList)

    WHILE (LEN(@tempItemList) > 0)
    BEGIN
        IF @i = 0
            SET @Item = @tempItemList
        ELSE
            SET @Item = LEFT(@tempItemList, @i - 1)
        INSERT INTO @IDTable(Item) VALUES(@Item)
        IF @i = 0
            SET @tempItemList = ''
        ELSE
            SET @tempItemList = RIGHT(@tempItemList, LEN(@tempItemList) - @i)
        SET @i = CHARINDEX(@delimiter, @tempItemList)
    END 
    RETURN
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 डेटाबेस पुनर्प्राप्ति लंबित पहुँच अस्वीकृत समस्या को ठीक करें

  2. संग्रहित प्रक्रिया से सी # एएसपीनेट में रिटर्न वैल्यू प्राप्त करना (वाक्यविन्यास समस्या)

  3. SQL सर्वर का पोर्ट नंबर

  4. मैं ग्रिडव्यू के भीतर किसी शब्द को कैसे हाइलाइट कर सकता हूं?

  5. दो तिथियों के बीच माध्यिका ढूँढना SQL Server 2008