WITH CTE AS
(
Select
REPLACE(
SUBSTRING(UPPER(Column_Name),1,1) + SUBSTRING(Column_name,2,LEN(COLUMN_NAME)),
'_' + LOWER(
SUBSTRING(UPPER(
REPLACE(SUBSTRING(Column_Name,CHARINDEX('_',COLUMN_NAME),LEN(COLUMN_NAME)-CHARINDEX('_',COLUMN_NAME)),'_','')
),1,1)
)
,
SUBSTRING(UPPER(
REPLACE(SUBSTRING(Column_Name,CHARINDEX('_',COLUMN_NAME),LEN(COLUMN_NAME)-CHARINDEX('_',COLUMN_NAME)),'_','')
),1,1)
) as ColumnName
from information_schema.columns where table_name like 'Person'
)
Select
REPLACE(
InnerColumnName,
'_' + LOWER(
SUBSTRING(UPPER(
REPLACE(SUBSTRING(InnerColumnName,CHARINDEX('_',InnerColumnName),LEN(InnerColumnName)-CHARINDEX('_',InnerColumnName)),'_','')
),1,1)
)
,
SUBSTRING(UPPER(
REPLACE(SUBSTRING(InnerColumnName,CHARINDEX('_',InnerColumnName),LEN(InnerColumnName)-CHARINDEX('_',InnerColumnName)),'_','')
),1,1)
)
from
(
Select
REPLACE(
ColumnName,
'_' + LOWER(
SUBSTRING(UPPER(
REPLACE(SUBSTRING(ColumnName,CHARINDEX('_',ColumnName),LEN(ColumnName)-CHARINDEX('_',ColumnName)),'_','')
),1,1)
)
,
SUBSTRING(UPPER(
REPLACE(SUBSTRING(ColumnName,CHARINDEX('_',ColumnName),LEN(ColumnName)-CHARINDEX('_',ColumnName)),'_','')
),1,1)
)
AS InnerColumnName
FROM CTE
) AS AAA
Can we optimize this to implement the things in a more genric way, so that it can handle n number of underscores in a query