ホームページ >データベース >mysql チュートリアル >SQL Server で数値を含む VARCHAR 列を数値的に並べ替えるにはどうすればよいですか?

SQL Server で数値を含む VARCHAR 列を数値的に並べ替えるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-31 12:20:11870ブラウズ

How Can I Sort VARCHAR Columns Containing Numbers Numerically in SQL Server?

SQL Server で数値を含む VARCHAR 列を並べ替える

文字と数字の両方を含む VARCHAR 列を並べ替えるのは、特に次のような場合に困難になることがあります。数値の数値ソートを優先します。効果的な解決策の 1 つは、一貫した文字列長を実現するために数値にゼロを埋め込むことです。

以下の SQL クエリは、このアプローチを示しています。

select MyColumn
from MyTable
order by 
    case IsNumeric(MyColumn) 
        when 1 then Replicate('0', 100 - Len(MyColumn)) + MyColumn
        else MyColumn
    end

このクエリ内:

  • IsNumeric(MyColumn) は、MyColumn の値が数値かどうかを確認します。
  • 場合が数値の場合、Replicate() 関数は、長さが 100 文字に達するまで値の先頭にゼロを追加します。これにより、すべての数値の文字列長が同じになります。
  • 値が数値でない場合、値は変更されません。

変更された値に基づいてデータを並べ替えることにより、このクエリは次のようになります。必要に応じて、数値を数値順に並べ替えたり、数値以外の値をアルファベット順に並べ替えたりできます。 100 をデータベース内の MyColumn の実際の長さに忘れずに置き換えてください。

以上がSQL Server で数値を含む VARCHAR 列を数値的に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。