Tôi muốn lấy một trường và thay thế tất cả ký tự không nằm giữa a-z và A-Z bằng "".TSQL Thay thế tất cả các ký tự không phải là z/A-Z bằng một chuỗi rỗng
Điều này có thể thực hiện được không và nếu có thì làm cách nào?
Tôi muốn lấy một trường và thay thế tất cả ký tự không nằm giữa a-z và A-Z bằng "".TSQL Thay thế tất cả các ký tự không phải là z/A-Z bằng một chuỗi rỗng
Điều này có thể thực hiện được không và nếu có thì làm cách nào?
Bạn có thể tạo một thủ tục được lưu trữ CLR
để thực hiện thay thế biểu thức chính quy. Dưới đây là một bài viết về chủ đề đó: http://weblogs.sqlteam.com/jeffs/archive/2007/04/27/SQL-2005-Regular-Expression-Replace.aspx
Sau đó, bạn có thể làm một cái gì đó như thế này:
UPDATE your_table
SET col1 = dbo.RegExReplace(col1, '[^A-Za-z]','');
EDIT: Kể từ CLR
không phải là một lựa chọn, kiểm tra this liên kết, có một chức năng dbo.RegexReplace
có được viết bằng t-sql, không phải CLR. Bạn có thể sử dụng chức năng đó theo cách sau đây:
Trước tiên, bạn cần phải chạy này để kích hoạt Ole:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
Sau đó tạo các dbo.RegexReplace
chức năng nhất định tại liên kết tôi cung cấp.
Sau đó, bạn có thể làm điều này:
create table your_table(col1 varchar(500))
go
insert into your_table values ('aBCCa1234!!fAkk9943');
update your_table set col1 = dbo.RegexReplace('[^A-Za-z]','',col1,1,1);
select * from your_table
Result:
aBCCafAkk
Bạn có thể thử tạo một UDF (người dùng định nghĩa chức năng) và sau đó sử dụng nó trong các truy vấn của bạn:
Sau đó làm một truy vấn tương tự như:
SELECT * FROM myTable WHERE find_regular_expression(myCol, '[^a-zA-Z]')
Nó cũng xuất hiện sự ủng hộ có thể có nguồn gốc ở các phiên bản sau của SQL Server, chắc chắn 2008 R2, thông qua mdq.RegexMatches function (Một phần của Master Data Dịch vụ).
http://msdn.microsoft.com/en-us/library/ee633829(SQL.105).aspx
Nhưng anh ta cần phải thay thế mẫu phù hợp, không chỉ tìm thấy nó. – dcp
.NET CLR không phải là một tùy chọn. Cảm ơn mặc dù. Cần phải trong SQL tinh khiết –