sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-forespørgsel for at opdele en kolonne i to kolonner

Noget som dette

declare @x nvarchar(500) = '1.1.1 chapter1'

select substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1) as Major,
       substring(@x,charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x))) as Minor

Erstat @x i din forespørgsel ..

og violinen til det :http://sqlfiddle.com/#!3/d41d8 /4424/0

opdateret med. foran og bevis på fejl

erklær @x nvarchar(500) ='1.1.1 kapitel1'

select @x,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1)
        else 'Cannot be parsed'
   end,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x))+1)
        else 'Cannot be parsed'
   end

og uden . foran

erklær @x nvarchar(500) ='1.1.1 kapitel1'

select @x,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1,charindex('.',@x,1+charindex('.',@x))-1)
        else 'Cannot be parsed'
   end,
   case when charindex('.',@x,1+charindex('.',@x)) <> 0 then substring(@x,1+charindex('.',@x,1+charindex('.',@x)),len(@x)-charindex('.',@x,1+charindex('.',@x)))
        else 'Cannot be parsed'
   end

http://sqlfiddle.com/#!3/d41d8/4430/0



  1. Gem billedfiler eller URL'er i MySQL-databasen? Hvilken er bedre?

  2. Array af sammensat type som lagret procedureinput videregivet af C# Npgsql

  3. Hvorfor modtager jeg ikke nok værdier, når jeg kører en INSERT?

  4. Oracle SQL - DENSE_RANK