값이 1 인 특정 필드와 값이 2 인 행, 값이 0 인 모든 다른 행을 선택해야하는 상당히 간단한 작업이 있습니다.UNION - TSQL을 사용하여 사용자 지정 결과 순서
어떤 항목이 어떤 범주에 속해 있는지 얻기 위해 조인을 사용했습니다. 나는 올바른 순서로 결과를 결합 할 것이다 조합을 사용하여 3 선택을 수행하고 있다고 생각하지만, 나는 다음과 같이
내 SQL입니다 :) 잘못 :
SELECT * FROM tblcompanycategory
INNER JOIN tblcompany
ON tblcompany.idcompany = tblcompanycategory.idcompany
WHERE tblcompanycategory.idcategory = @category AND tblcompany.intpremium = 1
UNION
SELECT * FROM tblcompanycategory
INNER JOIN tblcompany
ON tblcompany.idcompany = tblcompanycategory.idcompany
WHERE tblcompanycategory.idcategory = @category AND tblcompany.intpremium = 2
UNION
SELECT * FROM tblcompanycategory
INNER JOIN tblcompany
ON tblcompany.idcompany = tblcompanycategory.idcompany
WHERE tblcompanycategory.idcategory = @category AND tblcompany.intpremium = 0
내 결과와 함께 주문 나오지 않습니다 1, 2, 0 .. 내가 여기서 뭐하는거야?
* 해결책 * 도움 주셔서 감사합니다. 아래는 내가 사용하고있는 최종 SQL이다.
SELECT * FROM tblcompanycategory
INNER JOIN tblcompany
ON tblcompany.idcompany = tblcompanycategory.idcompany
WHERE tblcompanycategory.idcategory = @category
ORDER BY CASE tblcompany.intpremium WHEN 1 THEN 0 WHEN 2 THEN 1 WHEN 0 THEN 2 END