Có cách nào để tách các ký tự đặc biệt (chỉ để lại chữ và số) từ một chuỗi/trường trong máy chủ SQL mà không có chức năng vòng lặp/tùy chỉnh không?Dải ký tự đặc biệt trong SQL không có vòng lặp?
Cho đến nay, là tốt nhất tôi đã đưa ra là:
Create Function [dbo].[strip_special](@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin
While PatIndex('%[^a-z0-9]%', @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex('%[^a-z0-9]%', @Temp), 1, '')
Return @TEmp
End
Trên một số máy chủ tôi không có đặc quyền để cread sử dụng chức năng xác định do đó, tôi muốn để có thể đạt được cùng một kết quả không có. Tôi cũng có những lo ngại về hiệu suất/hiệu suất của vòng lặp (mặc dù tôi đoán thậm chí một hàm/phương thức tích hợp có thể sẽ tự sử dụng một vòng lặp).
Cảm ơn
Tôi đã soemtimes thấy đề nghị tháo dây vào một bảng như điều và tham gia vào một bảng ký tự thủ môn . [Đây là một cuộc thảo luận mà bạn có thể quan tâm] (http://ask.sqlservercentral.com/questions/75404/strip-all-but-alpha-chars-out-of-a-string) –