In SQL Server, I am trying to extract some text in a column that contains comments. I wrote the code below which essentially looks for everything after the substring "ABILITIES:" and everything before a "."
The code works, but because of the contents of that column I had to convert every reference to it in varchar format, i.e. CONVERT(VARCHAR(MAX),comment)
And as you can see, the code becomes very long and hard to read. My question is, is there a way to create a temporary column that basically just converts the comment
column to varchar. And then I can just use that temp column as a variable in my code? Sort of like how you would with Python?
Or will you have to do that through a CTE?
SELECT *,
REPLACE(
LEFT(
SUBSTRING(CONVERT(VARCHAR(MAX),comment), CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12, LEN(CONVERT(VARCHAR(MAX),comment)) - CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12),
CASE
WHEN CHARINDEX('.', SUBSTRING(CONVERT(VARCHAR(MAX),comment), CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12, LEN(CONVERT(VARCHAR(MAX),comment)) - CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12)) = 0
THEN 0
ELSE CHARINDEX('.', SUBSTRING(CONVERT(VARCHAR(MAX),comment), CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12, LEN(CONVERT(VARCHAR(MAX),comment)) - CHARINDEX('ABILITIES:', CONVERT(VARCHAR(MAX),comment))+12)) - 1
END
), ',','') extracted_text
FROM table