• ベストアンサー

ソートについて

オラクルのデータベースで半角英数字、半角スペース、 半角記号が混ざった文字列に定義された列があって、 その列をうまくソートする方法はありますか? (例) 桁数は3桁、半角スペースは[_]アンダースコアであらわすとして 05 1_ a_ 18 2_ 1a ↓ 1_ 1a 2_ 05 18 a_ よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>その列をうまくソートする方法はありますか? どのような基準でソートすると旨いのですか? サンプルだけ書かれても、ソートの基準がわかりません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ALGO-9
  • ベストアンサー率66% (12/18)
回答No.2

(例)からすれば、 2_ → 05 → 18 → a_ のあたりが問題になっているのでしょうか? そのままSORTすると、05が2_の前になるということですかね。 各値を、数値と文字に分解してみてはどうですかね。 .(値).....(A).....(B)...............  1_ --> 1 , _ 1a --> 1 , a 2_ --> 2 , _ 05 --> 5 , NULL 18 --> 18 , NULL a_ --> 9999 , a_ .(値).....(A).....(B)............... 項目(A),(B)でSORTするとかすると... 当然、テーブルへの項目追加と関数の作成等が必要となりますが、どうですかね。 とりあえずの案ですけどね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ちょっと特殊なソート

    ソートプログラムを作りたいんですが、ちょっと特殊なんです。 入力データとして 5 2 4 8 1 4 みたいに、スペースで区切られた数字および文字列があります。それをスペースまでを一区切りとしてソートしていきたいのです。上の例だとこんな感じ。 2 4 5 1 4 8 どういう風に設計するのがいいと思いますか? シェルスクリプトに埋め込みたいので、できるだけコードを短くしたいのですが… 教えてください。

    • ベストアンサー
    • Perl
  • 【Perl】特定文字列の抽出方法が分かりません。

    $aに以下のように、 SNから始まる不規則な桁の半角数字 + 半角スペース + 半角の不規則な桁の英数字 が代入されているとして、 $a = "SN0123456789012345 Aabc1ef"; $bに、半角スペースより前の文字列(SN0123456789012345)のみを 代入するにはどのようなソースにするといいのでしょうか? 御教授お願いします。

  • エクセルのソートについて

    こんにちは いつもお世話になっています。 エクセルのソートに関して教えてください。 A列に商品名(ふりがな情報あり)、B列に一桁と二桁の数字(標準表示形式)があります。 ソートの優先順位を第一がB列の下一桁の数字、第二がA列の商品名にする方法を教えてください。 よろしくお願いします。

  • フリガナのソートがうまくいきません。

    こんにちは。よろしくお願いします。 現在、元のソースプログラムが紛失してしまったため、VB5で作りかえる作業をしています。氏名のアイウエオ順で一覧表を作成するプログラムを作成しているのですが、ソート結果が思ったとおりになりません。 (例)ACCESSのデータというテーブルのフリガナと氏名の2つの列としてください。    オ-ゾノ 大園 ・・・ 長音記号はマイナス記号(-)です。    オオクラ 大蔵         佐藤 ・・・ この分はフリガナなし ACCESSの中に入っているデータが例のようにあるのですが、VB5でSQL文を使ってソートし表示しようとすると、         佐藤    オオクラ 大蔵    オ-ゾノ 大園 となってしまいます。 元のプログラムでは、はじめの(例)のとおりの順番に表示されています。 記載したSQL文は、    SELECT フリガナ,氏名 FROM データ ORDER BY フリガナ としました。 元のプログラムの言語はCOBOL、データベースはORACLE(バージョンは不明)です。これをORACLEの使用をやめ、ACCESSにデータを持つように変更することになりACCESSにデータを移行しました。 元のプログラムどおりの順番に並び替えるのはどうすればよいのでしょうか。

  • Accessの短いテキスト型の後ろ空白埋めさせない

    Accessで短いテキスト型で項目を定義してデータを登録すると、 設定した桁数まで後ろに空白が勝手に埋まります。 例えばフィールドサイズを10桁に設定して "abcdefg"という7桁データを入れると、 "abcdefg"+半角スペース3桁になります。 半角スペースで埋まらないようにできませんか?

  • Access97のテキストボックスプロパティの入力規制について

    質問はAccessのテキストボックスに パスワードを入力する機能についてです。 パスワードは6桁の半角英数字のみ入力可能にしたいです。 現在、以下のことを試し、 半角英数字が6桁入力できるようになりました。 テキストボックスのプロパティで 定型入力部分に「password」と設定しテキストボックスに パスワードが「****」で表示できるようにしました。 そして6桁にしたいので、 入力規制の部分に「like "??????"」と設定しました。 問題は半角英数字は入力できるのですが、 スペースや記号も入力できてしまうことです。 スペースや記号は入力できないように設定することは可能でしょうか? また入力規制の部分で、半角英文字、半角数字を設定することは 可能でしょうか? 何か解決法がありましたら、教えてください。 よろしくお願いします。

  • MYSQL 右埋め 半角スペース

    MYSQLで右埋めで指定回数分、半角スペースを埋めることは可能でしょうか? オラクルでは RPAD(文字列 , 指定桁数)  可能ですが、 MYSQLでは?

    • ベストアンサー
    • MySQL
  • 先頭のTHE、A などを無視してソート

    PHP+Mysqlでデータベースを利用しています。 質問タイトルの通り、 データベースの内容を表示する際、 ソートをするときに 先頭のTheやAといった文字列を無視してソートしたいのですが、 どのようにすればいいのでしょうか? 例: Apple The Bear Candle A Duck よろしくご教授下さい。

    • ベストアンサー
    • MySQL
  • LINUXで半角の英数字以外の文字列をgrep検索したい

    LINUXで半角の英数字以外の文字列をgrep検索したい たとえば a!3" とか 30%(under_s) とか grepでもなんでもよいですが上記のような半角英数字以外の文字列を検索できますでしょうか。 grep -c で、半角英数字以外の文字列があるかどうか確認したいです。 よろしくお願いします。

  • なぜ英数字を半角にする人が多いのか?(なぜ英数字以外の記号は半角にしないのか?)

    ネット上を見てると、英数字……取り分け数字は、 どんな場合でも(1桁でも2桁でも関係なく)半角にしている人が多いように思えます。 これはなぜでしょうか? 「それは昔からの決まりだから。」と聞いたことがあるのですが、 そういう人の中には、僕が思うに英数字を半角にしているだけで、 「!」「?」「#」「&」など、カタカナ以外の半角にできる記号を、半角にしていない人がいるんです。 これっておかしいと思います。 おそらく英数字を半角にするのが昔からの決まりだったのは、 昔のパソコンを使っていた人の多くが1バイト文字を使っていたからでしょうし……。 それなら、カタカナは別として、英数字だけでなく、他のすべての記号を半角入力するべきだと思います。 英数字だけ半角なんて、絶対中途半端だし、変です。 「英数字だけ半角にするのに、他の記号は半角にしない理由。」 回答お待ちしております。