sql - Custom Result Order using UNION - TSQL -


i have simple task in need select rows particular field value of 1 first, value of 2 , other rows value of 0.

i using join items member of category. thought performing 3 selects , using union combine results in correct order, wrong :)

my sql follows:

select * tblcompanycategory  inner join tblcompany on tblcompany.idcompany = tblcompanycategory.idcompany tblcompanycategory.idcategory = @category , tblcompany.intpremium = 1  union  select * tblcompanycategory  inner join tblcompany on tblcompany.idcompany = tblcompanycategory.idcompany tblcompanycategory.idcategory = @category , tblcompany.intpremium = 2 union  select * tblcompanycategory  inner join tblcompany on tblcompany.idcompany = tblcompanycategory.idcompany tblcompanycategory.idcategory = @category , tblcompany.intpremium = 0 

my results not come out ordered 1, 2 , 0.. doing wrong here??

* solution * guys. below final sql using.

select * tblcompanycategory      inner join tblcompany     on tblcompany.idcompany = tblcompanycategory.idcompany     tblcompanycategory.idcategory = @category      order case tblcompany.intpremium when 1 0 when 2 1 when 0 2 end 

the union statement, set operators, agnostic when comes ordering data.

what can do, however, run 1 select statement carefully-crafted order statement, such as:

... order case tblcompany.intpremium when 1 0 when 2 1 when 0 2 end 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -