Quantcast
Channel: Questions in topic: "cte"
Viewing all articles
Browse latest Browse all 75

Recursive Query Optimization

$
0
0
Hi, I had a table called Person with the columnname (person_id, person_name,person_permenant_address). I need to create a model . so to reduce my effort i planned to create a query which returns an output columns as (PersonId, PersonName,PersonPermenantAddress) (CAMEL CASE Words). So for this i used a below query as a temporary solution and which handled upto 3 '_' underscores...

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

Viewing all articles
Browse latest Browse all 75

Trending Articles