79145655

Date: 2024-10-31 17:03:36
Score: 0.5
Natty:
Report link

I knww this is a very old post but just wanted to add this in case anyone was interested. Two simple solutions for SQL 2017 and above and pre SQL 2017

/* SQL 2017 and above */
declare @str varchar(50) = 'dff dfdff   !"£$%^&*()_-+=@~#?/>.<   dfd dfd'

;WITH nums AS
(
  SELECT 1 AS Num
  UNION ALL
  SELECT num + 1 AS Num
  FROM nums
  WHERE Num + 1 <= LEN(@str)
)
  SELECT STRING_AGG(Val,'')
  FROM (
  SELECT *,SUBSTRING(@str,Num,1) AS val
  FROM nums) a
  WHERE val LIKE '%[A-Z]%'


/*Pre SQL 2017 */
  declare @str varchar(50) = 'dff dfdff   !"£$%^&*()_-+=@~#?/>.<   dfd dfd'

;WITH nums AS
(
  SELECT 1 AS Num
  UNION ALL
  SELECT num + 1 AS Num
  FROM nums
  WHERE Num + 1 <= LEN(@str)
)
  SELECT STUFF((SELECT '' +  Val AS [text()]
  FROM (
  SELECT *,SUBSTRING(@str,Num,1) AS val
  FROM nums) a
  WHERE val LIKE '%[A-Z]%'
  FOR XML PATH ('')),1,0,'')
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: David Wiltcher