Here is how you can get rid of the JR. This is almost impossible to do in T-SQL directly, but you can run a Python script for the task:
CREATE TABLE #tbl (string nvarchar(max))
INSERT #tbl (string)
VALUES ('CHAMBERS DENNIS L JR BRIAY'),
('GRAHAM JAMES D JR'),
('CHAMBERS DENNIS L JR');
DECLARE @python_script nvarchar(MAX) = 'import pandas, re
Data["string"] = pandas.Series([
re.sub(r"\s*\bJR\b\s*", r" ", str, flags=re.IGNORECASE)
for str in Data["string"]])'
EXEC sp_execute_external_script @language = N'Python', -- Set language.
@input_data_1 = N'SELECT string FROM #tbl', -- Data sent to Python.
@input_data_1_name = N'Data', -- Name of Python variable for input.
@output_data_1_name = N'Data', -- Name of Python variable for output.
@script = @python_script
go
DROP TABLE #tbl
For this to work, some pre-conditions needs to be fulfilled. I have a blog post that discusses this: https://sqlservergeeks.com/a-tip-about-using-python-for-regular-expressions-in-t-sql-by-erland-sommarskog/ and which also has more examples on using regular expression in Python from T-SQL.