Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 How to USE CONCAT function in SQL

Author  Topic 

goligol
Posting Yak Master

128 Posts

Posted - 2011-06-27 : 14:36:33
Hi,
I have the following query, I would like to add a column which concatenates the other 4 created columns, but doesn't recognize the concat function:

SELECT geo_orig O
,'001' D
,mode_dom M
,'$0000' C
,val V0
,val_f Vf
,val_cv Vcv
,square(val*val_cv) Vv
,ton T0
,ton_f Tf
,ton_cv Tcv
,square(ton*ton_cv) Tv
,tmile TM0
,tmile_f TMf
,tmile_cv TMcv
,square(tmile*tmile_cv) TMv

,OGIDX = CASE
WHEN LEFT(GEO_ORIG,2)='01' THEN '10000000'
WHEN LEFT(GEO_ORIG,2)='02' THEN '2000000'+RIGHT(GEO_ORIG,1)
WHEN LEFT(GEO_ORIG,2)='03' THEN '3000000'+RIGHT(GEO_ORIG,1)
WHEN LEFT(GEO_ORIG,2)='04' THEN '4'+RIGHT(GEO_ORIG,2)+'00000'
ELSE '5'+SUBSTRING(GEO_ORIG,8,7)
END


,'10000000' DGIDX



,MIDX = CASE
WHEN mode_dom = '1' THEN '10000000'
WHEN mode_dom IN ('13','18','19') THEN '200000' + CAST(mode_dom as char)
WHEN mode_dom = '2' THEN '2000000' + CAST(mode_dom as char)
WHEN mode_dom IN ('3','6','7') THEN '3000000' + CAST(mode_dom as char)
WHEN mode_dom IN ('11','12') THEN '300000' + CAST(mode_dom as char)
WHEN mode_dom IN ('14','15','16','17','18') THEN '400000' + CAST(mode_dom as char)
END


,'10000000' CIDX
, concat (OGIDX , DGIDX , MIDX , CIDX) IDX


FROM [bts].[cf07ur00].[a01]

robvolk
Most Valuable Yak

15732 Posts

Posted - 2011-06-27 : 14:41:06
Change:

, concat (OGIDX , DGIDX , MIDX , CIDX) IDX

To:

, OGIDX+DGIDX+MIDX+CIDX IDX
Go to Top of Page

goligol
Posting Yak Master

128 Posts

Posted - 2011-06-27 : 14:43:41
thank you, but if I do this change the following error appears because the other 4 columns I am adding are also created on the fly:

Msg 207, Level 16, State 1, Line 42
Invalid column name 'OGIDX'.
Msg 207, Level 16, State 1, Line 42
Invalid column name 'DGIDX'.
Msg 207, Level 16, State 1, Line 42
Invalid column name 'MIDX'.
Msg 207, Level 16, State 1, Line 42
Invalid column name 'CIDX'.
Go to Top of Page

russell
Pyro-ma-ni-yak

5072 Posts

Posted - 2011-06-27 : 15:10:41
CASE
WHEN LEFT(GEO_ORIG,2)='01' THEN '10000000'
WHEN LEFT(GEO_ORIG,2)='02' THEN '2000000'+RIGHT(GEO_ORIG,1)
WHEN LEFT(GEO_ORIG,2)='03' THEN '3000000'+RIGHT(GEO_ORIG,1)
WHEN LEFT(GEO_ORIG,2)='04' THEN '4'+RIGHT(GEO_ORIG,2)+'00000'
ELSE '5'+SUBSTRING(GEO_ORIG,8,7)
END +
'10000000' +
CASE
WHEN mode_dom = '1' THEN '10000000'
WHEN mode_dom IN ('13','18','19') THEN '200000' + CAST(mode_dom as char)
WHEN mode_dom = '2' THEN '2000000' + CAST(mode_dom as char)
WHEN mode_dom IN ('3','6','7') THEN '3000000' + CAST(mode_dom as char)
WHEN mode_dom IN ('11','12') THEN '300000' + CAST(mode_dom as char)
WHEN mode_dom IN ('14','15','16','17','18') THEN '400000' + CAST(mode_dom as char)
END +
'10000000'
Go to Top of Page

goligol
Posting Yak Master

128 Posts

Posted - 2011-06-28 : 10:26:19
Thank you
Go to Top of Page

russell
Pyro-ma-ni-yak

5072 Posts

Posted - 2011-06-28 : 10:29:30
You're welcome
Go to Top of Page
   

- Advertisement -