Tôi đang xử lý một cơ sở dữ liệu gây phiền nhiễu trong đó một trường chứa những gì thực sự cần được lưu trữ hai trường riêng biệt. Vì vậy, cột được lưu trữ một cái gì đó như "Chuỗi đầu tiên ~ @ ~ Chuỗi thứ hai", trong đó "~ @ ~" là dấu phân tách. (Một lần nữa, tôi không thiết kế này, tôi chỉ cố gắng để sửa chữa nó.)SQL Server: bất kỳ tương đương strpos()?
Tôi muốn có một truy vấn để di chuyển này thành hai cột, đó sẽ giống như thế này:
UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '[email protected]~')),
str2 = SUBSTRING(Data, STRPOS(Data, '[email protected]~')+3, LEN(Data)-(STRPOS(Data, '[email protected]~')+3))
Nhưng Tôi không thể thấy rằng bất kỳ tương đương với strpos tồn tại.
Điều quan trọng cần lưu ý là thứ tự các đối số được chuyển đến đây, dẫn đến rất nhiều lỗi "Chuỗi hoặc dữ liệu nhị phân sẽ bị cắt ngắn" nếu bạn để kim và haystack theo thứ tự như strpos. – Noumenon