0
1)쿼리 실행
declare @OrderBy varchar(100) = 'CompanyName'
declare @SortingOrder varchar(5) = 'desc'
Select * from [User] order by (@OrderBy + ' ' + @SortingOrder)
2)
Select * from [User] order by CompanyName desc
내가 2 쿼리를 사용하는 경우, 결과는 (내가 예상 한대로)가 true를 제공,하지만 난 1 쿼리를 사용하는 경우 다음입니다 결과 예상대로.
결과 집합이 회사 이름을 내림차순으로 정렬하여 표시됨을 의미합니다.
첫 번째 쿼리에서 잘못된 점은 무엇입니까? 누군가 설명하십시오.
감사합니다.
당신의 경우도 동적 SQL을 사용하는 것에 대해 생각해보십시오. ** ** [동적 SQL의 저주와 축복] (** http://www.sommarskog.se/dynamic_sql.html)을 반드시 읽어야합니다! –
@marc_s 좋은 링크, 고마워. 그리고 죄송합니다, 여기에 늦었고 대부분의 경우 동적 SQL을 선호하는 ORDER BY에서 CASE WHEN을 사용할 수 있다는 것을 완전히 잊었습니다. – rsbarro