• ベストアンサー
  • 暇なときにでも

order byでカラムが空の場合は、別カラム指定

order byで複数カラム指定(?)したいのですが、どうすればよいでしょうか? 具体的には、カラムが空の場合は別カラム指定したいのですが、可能でしょうか? ■前提 ・titleカラム、yomiカラム ■最終的にやりたいこと ・titleカラムを五十音で並べ替えたい ■運用例(案) ・titleカラムが「漢字」の場合は、yomiカラムにひらがな、を入力 ・titleカラムが「ひらがな」の場合は、yomiカラムは空 ・titleカラムが「英字」の場合は、yomiカラムは空 ・titleカラムが「先頭数語がひらがなもしくは英字で、最後が漢字」の場合は、yomiカラムは空? ■分からないこと ・漢字対策として、「yomiカラム」作成したけど、すべてのレコードに対して、「yomiカラム」を埋める必要があるでしょうか? ・「ひらがなだけ」、「英字だけ」、あるいは、「先頭数語が英字で最後の方だけ漢字」なタイトルは、わざわざ「yomiカラム」を埋めなくてもよい? ■知りたいこと ・全ての「yomiカラム」を埋めなくても、「titleカラム」を五十音で並べ替える方法があれば、教えてください ※件数が多くてちょっと面倒なため、何かいい方法があればと思い、質問しました。「yomiカラム」全部埋めた方がいい、のであれば、その方向で検討しようと思います

共感・応援の気持ちを伝えよう!

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

order by binary coalesce(yomi,title) です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございましたー

関連するQ&A

  • order by 2カラムの先頭1文字で並替可能?

    order byする際、2カラムの先頭1文字で判断して、並べ替えることは可能でしょうか? ■想定 ・titleカラム ・yomiカラム ※運用案 案1 「titleカラム」先頭1文字目に漢字が入っているときだけ、yomiカラムにカタカナでフリガナを振る 案2 「titleカラム」先頭1文字目に漢字が入っているときは必ず、yomiカラムにカタカナでフリガナを振る

    • ベストアンサー
    • MySQL
  • テーブルの結合時に空のカラムに『NULL』を入れない方法について

    宜しくお願いします。 MySQLでleft joinでテーブルの結合を行った際に、表示に必要なカラムのみを定義した場合に、空のカラムに『NULL』が入ってしまい、絞込みで検索時にこの『NULL』が邪魔になり、きちんと検索できません。left joinでテーブルを結合する場合に空のカラムに『NULL』が入らない様にする方法はありますか? クエリ文 select a.column1,b.column2 from a left join b on a.column3 = b.column3 where column2 like '%%'; 上記の様に検索した場合、likeで曖昧検索の上、検索内容を指定していないので、全データが検索されるかと思ったのですが、テーブルbのcolumn2が空のカラムは検索されず、HIT数が減ります。このwhereは必須で、どうしても入れなければならない状況なので、空のカラムも検索する方法があると助かります。 何卒、ご教授の程、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • 1000件以下の場合はカラム数に関係なくキー不要?

    全てのカラムを対象にソートや絞り込みをする、また、テーブルを分割する必要がない場合、 全てのカラムにインデックスをつけるしかないと考えていましたが、 http://www28.atwiki.jp/lucier/pages/55.html 「MySQLでは1000件以下のデータの場合はインデックスを作成しないほうが 速い」 1000フィールドならカラムの数に関係なくインデックス不要で カラムの数が10の場合と、 カラムの数が50の場合 それぞれ負荷はかわらないということでしょうか。

    • ベストアンサー
    • MySQL
  • ORDER BY句で50音順に

    varchar型に 日本語(ひらがな)が入っているフィールドをORDER BYにて50音(あ~ん)まで順でソートしたいのですが、正常に動作するサーバーとそうでないサーバーがあり困っております。この場合プログラムでの応急処置のような対応はありますか?例えばORDER BYのオプションを指定し、ひらがなと認識させることなど。 通常はサーバーの設定なのでしょうが、如何せんレンタルサーバーなのでこちらでは変更できません。サーバー設定をもし変えるとしたらどの部分になりますか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • SQL ORDER BY句に別名を指定

    SQL初心者です。 よろしくお願い致します。 Oracle SQLのORDER BY句で日本語の別名と英字の別名とでは処理速度が変わるのでしょうか。 例えば、給与から控除額を引いて税抜き給与支給額の多い順に並べたい場合に 以下のようなSQLを検討しました。 ORDER BY句にはSELECT内の計算結果の別名を指定しました。 その結果、処理が遅くなる感じがしました。 代わりに、"税抜き給与支給額"をSIKYU_GAKと英字にすると早くなった気がしました。 日本語の別名と英字の別名とでは処理速度が異なるものでしょうか。 SELECT t1.ID AS "社員ID" ,t1.NAME AS "社員名" ,t1.KYUYO AS "給与" ,t1.ZEI AS "税金" ,t1.OTHER AS "その他" ,(t1.KYOYO - t1.ZEI - t1.OTHER) AS "税抜き給与支給額" FROM 社員 t1 ORDER BY "税抜き給与支給額"

  • インターネットのときだけひらがなの入力が出来ない

    文字の入力ですが、通常の文書作業のときは問題ないのですが、インターネットのとき、 半角英字しか打てなくなります。 IE2007の帯が出ていて、ここでひらがなを指定しても、言うことを聞きません。 たまにはひらがなで始まるときもあるのですが、一度漢字に変換したりすると、 またすぐに半角英字だけに縛られます。文字種を自由に使い分けしたいのですが、 どこか、設定が違っているのでしょうか、教えてください。

  • 中国語では

    中国語では日本語でひらがなを含む固有名詞も漢字をあてて中国語読みするのが一般的ですよね。「お茶の水」は「御茶之水」の音からYuchazhishuiとなったり。 こういう風にひらがな漢字をあてる場合、「自由が丘」はどのように表記するべきでしょうか?

  • 数学の得意な方お願いします。

    例えば、「ありがとう」、「ネット」、「もの」という3つの言葉を合わせて、「ありがとうネットもの」っていう一つのタイトルを作るとします。 「ありがとう」は、ひらがなで「ありがとう」、漢字で「有難う」、カタカナで「アリガトウ」の3パターン。 「ネット」は、ひらがなで「ねっと」、英字で「NET」、カタカナで「ネット」の3パターン。 「もの」は、ひらがなで「もの」、漢字で「者」、カタカナで「モノ」の3パターン。 3つの言葉がそれぞれ3パターンある場合、3つの言葉をいろいろ組み合わせて、一つのタイトルを作る(「ありがとうネットもの」、「ありがとうNETもの」、「ありがとうねっともの」など)と全部で何個できますか? 昔、数学でこの手の問題がまったく分からなかった記憶しかございませんので、どなたか数学が得意な方、お時間ある際によろしくお願いします

  • ORDER BYでカラムの値があれば指定したい

    <前提> ・created_at 登録日時カラム … 必ず値がある ・modified 更新日時カラム … nullの場合もある この時、更新日時カラムの値があれば、更新日時カラムを選択、 更新日時カラムがnullなら、登録日時カラムを選択した状態で、 降順表示させたいのですが、どうすれば良いでしょうか? やりたいのは、こんな感じです ORDER BY 更新日時カラムの値があれば、modified 更新日時カラムがnullなら、created_at DESC

    • ベストアンサー
    • MySQL
  • SQLSERVERのカラム内 文字間指定検索

    SQLSERVER2008にてフルテキストインデックス検索であるカラムを検索しています。 例 naiyouというカラムに関してレコードとして、 「始まり 私は人間です。 第二章 私はさるです。 終わり」 という文章が1レコード入っているとします。 この場合、仮にcontains (naiyou,'人間')と検索するともちろんこのレコードがHITします。 今回やりたいのは、 ・naiyou内の第二章以降の文章で「人間」と検索した場合、ノーヒットとなること ・naiyou内の始まり~第二章までの間で「人間」という検索をして、HITすること という、カラム内のある文字間でのCONTAINS 検索というのは可能でしょうか、そしてそのSQLはどのようにかけばいいのでしょうか?というご質問です。 NEARとかでできるのかと思い、いろいろやってみましたがうまくいきませんでした。 なぜこのようにしたいかというと、いま処理している文章の冒頭がすべて同じ文面になっており、文面内の単語で検索されてしまうと全件HITしてしまうからです。 本来なら、その冒頭を除いた文章で単語をHITさせたいため、範囲指定を考えました。 ご教授いただければ幸いです。