SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

टी-एसक्यूएल में एक एकल फ़ील्ड मान को एकाधिक निश्चित-लंबाई वाले कॉलम मानों में विभाजित करें

जैसा कि आप .net हैं डेवलपर मुझे लगता है कि आपके लिए .net . लिखना आसान होगा फ़ंक्शन जिसे आप अपने T-SQL . में उपयोग कर सकते हैं कोड। SQL CLR लिखने के लिए फ़ंक्शन चेक यह उत्तर (मैंने SQL CLR implement को लागू करने के लिए एक लिंक का उपयोग किया है रेगेक्स फ़ंक्शन।

मान लें कि आपको मानों को 4-लंबाई के टुकड़ों से विभाजित करने और उनमें से अधिकतम 6 दिखाने की आवश्यकता है:

DECLARE @DataSouce TABLE
(
    [RecordID] TINYINT IDENTITY(1,1) PRIMARY KEY
   ,[RecordData] NVARCHAR(MAX)
);

INSERT INTO @DataSouce ([RecordData])
VALUES ('test some test goes here')
      ,('some numbers go here - 1111122222233333344444444445');


SELECT DS.[RecordID]
      ,RM.[MatchID]
      ,RM.[CaptureValue]
FROM @DataSouce DS
CROSS APPLY [dbo].[fn_Utils_RegexMatches] ([RecordData], '.{1,4}') RM;

अब डेटा विभाजित है। आइए pivot यह और केवल 6 भाग दिखाएँ:

SELECT *
FROM
(
    SELECT DS.[RecordID]
          ,RM.[MatchID]
          ,RM.[CaptureValue]
    FROM @DataSouce DS
    CROSS APPLY [dbo].[fn_Utils_RegexMatches] ([RecordData], '.{1,4}') RM
) DS
PIVOT
(
    MAX([CaptureValue]) FOR [MatchID] IN ([0], [1], [2], [3], [4], [5], [6])
) PVT;

यहां मैं regex . का उपयोग करता हूं डेटा और PIVOT . को विभाजित करने के लिए कार्य करता है कॉलम बनाने और कुछ हिस्सों को बाहर करने के लिए। अब आप इसे अमल में लाने के लिए तालिका में डेटा सम्मिलित कर सकते हैं और फिर इसे निर्यात कर सकते हैं। आप ऊपर दिए गए लिंक का उपयोग करके इस तरह के फ़ंक्शन को लागू कर सकते हैं या अपनी आवश्यकता के अनुसार अपना स्वयं का फ़ंक्शन बना सकते हैं।



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SQL 2008 (SSMS) में Intellisense में स्कीमा परिवर्तन अद्यतन नहीं हो रहा है

  2. SQL सर्वर प्रबंधन स्टूडियो 2005 में शीघ्र सहेजें अक्षम करें

  3. SSMS के साथ SQL डेटाबेस माइग्रेशन

  4. SQL सर्वर तालिका पर निर्भर सभी ऑब्जेक्ट्स को स्क्रिप्ट करना चाहते हैं

  5. सभी को संक्षिप्त करें' या SQL सर्वर प्रबंधन स्टूडियो 2008 में रूपरेखा को टॉगल करें