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

रिकॉर्ड में फ़ील्ड से SQL सर्वर 2008 स्प्लिट स्ट्रिंग

क्रॉस अप्लाई का इस्तेमाल करें आपके विभाजन UDF के संयोजन के साथ। मैं अपने उदाहरण के लिए जिस स्ट्रिंग स्प्लिटर का उपयोग कर रहा हूं वह यहां से आता है। ।

/* Create function for purposes of demo */
CREATE FUNCTION [dbo].[fnParseStringTSQL] (@string NVARCHAR(MAX),@separator NCHAR(1))
RETURNS @parsedString TABLE (string NVARCHAR(MAX))
AS 
BEGIN
   DECLARE @position int
   SET @position = 1
   SET @string = @string + @separator
   WHILE charindex(@separator,@string,@position) <> 0
      BEGIN
         INSERT into @parsedString
         SELECT substring(@string, @position, charindex(@separator,@string,@position) - @position)
         SET @position = charindex(@separator,@string,@position) + 1
      END
     RETURN
END
go

/* Set up sample data */
declare @t table (
    IR int,
    CR varchar(100)
)

insert into @t
    (IR, CR)
    select 1, '1,2' union all
    select 2, '3' union all
    select 3, '4,5,6'

/* Here's the query that solves the problem */
select t.IR, p.string
    from @t t
        cross apply [dbo].[fnParseStringTSQL](t.CR,',') p


/* clean up after demo */
drop function [dbo].[fnParseStringTSQL]



  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. SQL सर्वर सिस्टम डेटाबेस - MSDB रखरखाव

  3. संलग्न .mdf डेटाबेस का उपयोग करने के लिए Web.config में DB कनेक्शन स्ट्रिंग काम नहीं करेगी

  4. newid () द्वारा आदेश - यह कैसे काम करता है?

  5. दूसरी क्वेरी का उपयोग किए बिना अंतिम डाली गई आईडी लौटाएं