>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 숫자와 알파벳 값이 혼합된 VARCHAR 열을 숫자로 정렬하는 방법은 무엇입니까?

SQL Server에서 숫자와 알파벳 값이 혼합된 VARCHAR 열을 숫자로 정렬하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-04 01:52:40421검색

How to Sort VARCHAR Columns with Mixed Numeric and Alphabetic Values Numerically in SQL Server?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.