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

SQL सर्वर स्ट्रिंग में डेटा विभाजित करें

यह फ़ंक्शन आपको स्ट्रिंग्स को विभाजित करने में मदद करेगा:

CREATE function dbo.split(@value varchar(8000),@delim varchar(8000))
returns table
as
return
(
select d.value,
       d.orders,
       ivalue = convert(int, case when isnumeric(d.value)=1 and d.value not like '%[^0-9 +-]%' and len(replace(replace(replace(d.value,' ',''),'-',''),'+',''))<=10 then case when convert(bigint,d.value) between -2147483648 and 2147483647 then d.value end end)

    from
        (
            select   
                    value= replace(substring(value,
                                            idx,
                                            case when cnt>=0 then cnt end /* case для защиты от нехороших планов, когда сначала идет вычисление substring, а потом ограничивающее where по s_value.number between */
                                         )
                                 ,char(1),'')
                    ,orders=( datalength(left(value,idx-1))-datalength(replace(left(value,idx-1),@delim,''))
                            )/datalength(@delim)
                from (
                       select number
                             ,idx
                             ,cnt = charindex(@delim,value, number + 1) - number - datalength(@delim)
                             ,value 
                          from 
                                (
                                   select number
                                         ,idx = number + datalength(@delim)
                                         ,value = (select @delim+char(1)[email protected]+char(1)[email protected])
                                      from dbo.s_value
                                        where number between 1 and datalength( (select @delim+char(1)[email protected]+char(1)[email protected]) ) - datalength(@delim)

                                ) t            
                          where substring(t.value, number, datalength(@delim)) = @delim         
                     ) t             
       ) d          
)


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. राउंड .NET डेटटाइम मिलीसेकंड, इसलिए यह SQL सर्वर मिलीसेकंड में फिट हो सकता है

  2. टीएसक्यूएल में पाइप/वर्टिकल बार कैरेक्टर का क्या अर्थ है?

  3. SQL में अगले और पिछले रिकॉर्ड के आधार पर छँटाई

  4. SQL सर्वर एजेंट नौकरियों का बैकअप कैसे लें?

  5. SQL सर्वर (T-SQL) में उपयोगकर्ता की डिफ़ॉल्ट भाषा कैसे खोजें