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

trích xuất văn bản từ cột và sao chép nó vào một cột mới

Giả sử rằng tôi sẽ phải trích xuất từ ​​cột chuỗi lần đầu tiên xuất hiện các giá trị ngày / giờ có định dạng sau DD/MM/YYYY HH:SS (length =16 ký tự) thì tôi sẽ sử dụng PATINDEX thay vì CHARINDEX do đó:

SELECT  *, 
    SUBSTRING(
        x.StringColumn, 
        NULLIF(PATINDEX('%[0-1][0-9]/[0-3][0-9]/[0-9][0-9][0-9][0-9][ ][0-9][0-9]:[0-9][0-9]%', x.StringColumn), 0), 
        16) AS DateTimeExtracted
FROM    (VALUES 
    ('Bogdanel 01/02/2017 03:04 hei ho'),
    ('Georgel 05/06/2017 07:08 danga langa'),
    ('Suna''n asfintit 09/11/2018 11:22 hei talanga'),
    ('Danga langa. Pai da.'),
    ('   '),
    (NULL)
) x(StringColumn)

Kết quả:

StringColumn                                 DateTimeExtracted
-------------------------------------------- -----------------
Bogdanel 01/02/2017 03:04 hei ho             01/02/2017 03:04
Georgel 05/06/2017 07:08 danga langa         05/06/2017 07:08
Suna'n asfintit 09/11/2018 11:22 hei talanga 09/11/2018 11:22
Danga langa. Pai da.                         NULL
                                             NULL
NULL                                         NULL


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Buộc Management Studio sử dụng ALTER TABLE thay vì DROP / CREATE

  2. hiển thị Tạo lệnh cho bảng trong SQL Management Studio (2008)

  3. Trình điều khiển Simba Mongo ODBC:dữ liệu trả về không khớp với độ dài dữ liệu mong đợi

  4. Đã gặp EOF không mong muốn trong tệp dữ liệu BCP

  5. Tìm thủ tục được lưu trữ theo tên