SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

Tách một giá trị trường đơn thành nhiều giá trị cột có độ dài cố định trong T-SQL

Như bạn là .net nhà phát triển Tôi đoán bạn sẽ dễ dàng viết một .net mà bạn có thể sử dụng trong T-SQL của mình mã số. Để viết SQL CLR kiểm tra chức năng câu trả lời này (Tôi đã sử dụng một trong các liên kết để triển khai SQL CLR hàm regex.

Giả sử bạn cần chia các giá trị thành 4 phần độ dài và hiển thị tối đa 6 giá trị trong số đó:

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;

Bây giờ dữ liệu được chia nhỏ. Hãy pivot nó và chỉ hiển thị 6 trong số các phần:

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;

Ở đây tôi sử dụng regex chức năng tách dữ liệu và PIVOT để tạo cột và loại trừ một số phần. Bây giờ bạn có thể chèn dữ liệu vào bảng để hiện thực hóa nó và sau đó xuất nó. Bạn có thể triển khai chức năng như vậy bằng cách sử dụng liên kết ở trên hoặc tạo chức năng của riêng bạn để làm điều gì đó bạn cần.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Cách sử dụng git làm nhà cung cấp kiểm soát nguồn cho SQL Server Management Studio

  2. SQL Server 2008 management studio intellisense tự động làm mới (không phải thủ công thông qua menu hoặc phím tắt)

  3. Có cách nào để xem khoảng trắng trong trình soạn thảo truy vấn cho SQL Server Management Studio Express 2005 không?

  4. SQL Server Management Studio KHÔNG cho phép tôi tạo nhiều khóa ngoại cho nhiều khóa chính

  5. sql xóa hàng lỗi