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
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Get the greateest number among columns

Author  Topic 

satish.gorijala
Posting Yak Master

182 Posts

Posted - 2009-01-19 : 03:50:20
Hi, i have the requiremnt to retrive the data among the columsn..
Ex:

Col1 Col2 Col3 Col4 Col5 zcode
12 24 23 2 4 23-45

I need output as

Col2
24

How can i write a query for this...the columns in a table are 112.this table contains 2.5 crore records.. using zcode i am able to select the desired row. But at the same time i need to pick up the greatest number column from the restult.

Select * from table where zcode = '23-45'
we got the above row. from that row onwards, i need to pick up greatest number column.




G. Satish

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2009-01-19 : 03:54:37
SELECT u.zCode, MAX(theValue)
FROM Table1 AS t1
UNPIVOT (theValue FOR theCol IN (t1.Col1, t1.Col2, t1.Col3, t1.Col4, t1.Col5, t1.zCode) AS u
GROUP BY u.zCode



E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page

PeterNeo
Constraint Violating Yak Guru

357 Posts

Posted - 2009-01-19 : 04:03:52
try this
DECLARE @T TABLE (Col1 INT, Col2 INT, Col3 INT, Col4 INT, Col5 INT, zcode VARCHAR(10))
INSERT INTO @T
SELECT 12, 24, 23, 26, 4, '23-45'

SELECT REF, Col, row_no
FROM
(
SELECT REF, Col, val, row_no = row_number() OVER (ORDER BY val DESC)
FROM
(
SELECT Col1 AS REF, Col = 'Col1', val = Col1 FROM @t WHERE Col1 IS NOT NULL
UNION ALL
SELECT Col2, Col = 'Col2', val = Col2 FROM @t WHERE Col2 IS NOT NULL
UNION ALL
SELECT Col3, Col = 'Col3', val = Col3 FROM @t WHERE Col3 IS NOT NULL
UNION ALL
SELECT Col4, Col = 'Col4', val = Col4 FROM @t WHERE Col4 IS NOT NULL
UNION ALL
SELECT Col5, Col = 'Col5', val = Col5 FROM @t WHERE Col5 IS NOT NULL
) d
) d
WHERE row_no = 1


"There is only one difference between a dream and an aim.
A dream requires soundless sleep to see,
whereas an aim requires sleepless efforts to achieve..!!"
Go to Top of Page

satish.gorijala
Posting Yak Master

182 Posts

Posted - 2009-01-19 : 04:18:04
Thank you for your query... i had written the query with my data as follows.
SELECT MAX(theValue)
FROM CountryOrigin AS t1
UNPIVOT (theValue FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM))
AS u where Final_Zip = '93722-4930'

Now i am getting accurate result. But i want to know the column name also. I am getting greatest value among columns. But from which column this greatest value is coming? how can i know that?
quote:
Originally posted by Peso

SELECT u.zCode, MAX(theValue)
FROM Table1 AS t1
UNPIVOT (theValue FOR theCol IN (t1.Col1, t1.Col2, t1.Col3, t1.Col4, t1.Col5, t1.zCode) AS u
GROUP BY u.zCode



E 12°55'05.63"
N 56°04'39.26"




G. Satish
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2009-01-19 : 05:34:24
[code]SELECT TOP 1 WITH TIES
theValue,
theCol
FROM (
SELECT *
FROM CountryOrigin
WHERE Final_Zip = '93722-4930'
) AS t1
UNPIVOT (
theValue
FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM)
) AS u
ORDER BY theValue DESC[/code]


E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page

satish.gorijala
Posting Yak Master

182 Posts

Posted - 2009-01-19 : 05:48:26
Thank You

quote:
Originally posted by Peso

SELECT TOP 1	WITH TIES
theValue,
theCol
FROM (
SELECT *
FROM CountryOrigin
WHERE Final_Zip = '93722-4930'
) AS t1
UNPIVOT (
theValue
FOR theCol IN (t1.TOTAL,t1.ACAD,t1.AFGH,t1.ALBA,t1.ALSA,t1.MUSL,t1.EGYP,t1.IRAQ,t1.JORD,t1.LEBA,t1.MORO,t1.PALE,t1.SYRI,t1.ABIC,t1.ORAB,t1.ARME,t1.ASSY,t1.AUSA,t1.AUST,t1.BASQ,t1.BELG,t1.BRAZ,t1.BRIT,t1.BULG,t1.CANA,t1.CARP,t1.CELT,t1.CROA,t1.CYPR,t1.CZEC,t1.CSLO,t1.DANE,t1.DUTC,t1.EEUR,t1.ENGL,t1.ESTO,t1.EURO,t1.FINN,t1.EFRE,t1.FCAN,t1.GERM,t1.GRUSS,t1.GREK,t1.GUYA,t1.HUNG,t1.ICEL,t1.PERS,t1.IRIS,t1.ISRE,t1.ITAL,t1.LATV,t1.LITH,t1.LUXE,t1.MACE,t1.MALT,t1.NEZL,t1.NEUR,t1.NORW,t1.PGER,t1.POLE,t1.PORT,t1.ROMA,t1.RUSS,t1.SCAN,t1.SCIR,t1.SCOT,t1.SERB,t1.SLAV,t1.SLOV,t1.SLOE,t1.SOVI,t1.SSAF,t1.CVER,t1.ETHI,t1.GHAN,t1.KENY,t1.LIBE,t1.NIGE,t1.SENE,t1.SLEO,t1.SOMA,t1.SAFR,t1.SUDA,t1.UGAN,t1.ZAIR,t1.ZIMB,t1.AFRI,t1.OAFR,t1.SWED,t1.SWIS,t1.TURK,t1.UKRA,t1.AMER,t1.WELS,t1.WIND,t1.BAHA,t1.BARB,t1.BELI,t1.BERM,t1.BWEI,t1.DWEI,t1.HAIT,t1.JAMA,t1.TRIN,t1.USVI,t1.WEST,t1.OWEI,t1.YUGO,t1.OGRO,t1.UNCL,t1.FREN,t1.AFAM)
) AS u
ORDER BY theValue DESC



E 12°55'05.63"
N 56°04'39.26"




G. Satish
Go to Top of Page
   

- Advertisement -