Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truy vấn Sql để chia một cột thành hai cột

Một cái gì đó như thế này

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

Thay thế @x trong truy vấn của bạn ..

và cách giải quyết cho nó: http://sqlfiddle.com/#!3/d41d8 / 4424/0

được cập nhật với. phía trước và bằng chứng cho lỗi

khai báo @x nvarchar (500) ='1.1.1 chương 1'

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

và không có. ở phía trước

khai báo @x nvarchar (500) ='1.1.1 chương 1'

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo chỉ mục chuỗi với Mã trước tiên

  2. Bộ đệm đệm:Nó là gì và nó ảnh hưởng như thế nào đến hiệu suất cơ sở dữ liệu?

  3. SQL Server Phân bổ số tiền trong hóa đơn

  4. phương thức xquery value () không hoạt động và đang báo lỗi

  5. SQL Server 2012 - Tìm kiếm toàn văn bản trên đầu trang có thể nén - PDF không được tìm kiếm