집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 숫자와 알파벳 값이 혼합된 VARCHAR 열을 숫자로 정렬하는 방법은 무엇입니까?
SQL Server에서 숫자 값을 사용하여 VARCHAR 열 정렬
숫자와 문자가 모두 포함될 수 있는 VARCHAR 열을 처리할 때 정렬하면 숫자 값을 숫자순으로 정렬하려면 이 문제를 해결하세요. 기본적으로 SQL Server는 이러한 열을 알파벳순으로 정렬하는데, 이 경우에는 바람직하지 않습니다.
원하는 정렬 동작을 달성하려면 숫자 값을 문자로 채워서 모든 문자열의 길이가 동일하도록 하는 솔루션이 필요합니다. 이를 통해 SQL Server는 데이터를 숫자로 정렬할 수 있습니다.
다음은 이 접근 방식을 보여주는 예제 쿼리입니다.
select MyColumn from MyTable order by case IsNumeric(MyColumn) when 1 then Replicate('0', 100 - Len(MyColumn)) + MyColumn else MyColumn end
이 쿼리에서는 IsNumeric 함수를 사용하여 값이 숫자인지 확인합니다. . 그렇다면 Replicate 함수는 앞에 0을 추가하여 문자열을 고정 길이(이 예에서는 100)로 채웁니다. 그렇지 않은 경우 값은 변경되지 않습니다.
이 식으로 정렬하면 숫자 값은 채워지고 숫자순으로 정렬되고, 숫자가 아닌 값은 알파벳순으로 정렬됩니다. 이렇게 하면 원래 질문의 예에 표시된 대로 원하는 정렬 순서가 보장됩니다.
1 2 10 A B B1
위 내용은 SQL Server에서 숫자와 알파벳 값이 혼합된 VARCHAR 열을 숫자로 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!