Một cách để đối phó với các dấu phẩy "cắt xén" như vậy sẽ là sử dụng CASE
tuyên bố:
CASE
WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
WHEN str LIKE ',%' THEN RIGHT(str, LEN(str)-1)
WHEN str LIKE '%,' THEN LEFT(str, LEN(str)-1)
ELSE str
END
Điều này rất dễ hiểu:CASE
tuyên bố xem xét ba tình huống -
- Khi chuỗi
str
có dấu phẩy ở cả hai bên, - Khi chuỗi
str
bắt đầu bằng dấu phẩy nhưng không kết thúc bằng dấu phẩy và - Khi chuỗi
str
kết thúc bằng dấu phẩy nhưng không bắt đầu bằng dấu phẩy.
Trong trường hợp đầu tiên, ký tự đầu tiên và ký tự cuối cùng bị loại bỏ; trong trường hợp thứ hai, ký tự ngoài cùng bên trái bị xóa; trong trường hợp cuối cùng, ký tự ở cuối bị xóa.