• ベストアンサー

SQLについて

7文字以下ならアスタリスクを表示したいのですが、 どうすればよいのでしょうか? オラクル10Gを使用しています。 SELECT DECODE(ID, LEN(ID) < 7, '*****', SUBSTR(ID,3,5) ) AS ID FROM 情報 おそらく、「LEN(ID) < 7」の書き方が違うのだと思いますが、 どなたか回答をよろしくお願いします。

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

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.3

DECODE関数の第二引数には,(たぶん数値あるいは文字などの)値しか置くことができません。 「LEN(ID) < 7」(正しくはNo.2さんの回答のとおり「LENGTH(ID) < 7』は値ではないので,この部分の書き方をどう変えてみてもこのままではエラーになります。 希望する処理を行いたいのであれば,参考URL(の下のほう)を参考にSQLを書き直してみてください。

参考URL:
http://www.mars.dti.ne.jp/~o-shin/new/kowaza/body530.html

その他の回答 (2)

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.2

LEN(ID) ではなくLENGTH(ID)

takahiro_k
質問者

補足

変更しましたが、エラーが返ってきてしまいます。

  • matui2000
  • ベストアンサー率19% (30/155)
回答No.1

今は未満になってるので=を等符号の左側につけてみてはどうでしょう。

takahiro_k
質問者

補足

言葉足らずでした。 今のままだとエラーが出て、 まず動かない状態になっているんです。 =をつけてみましたが、結果はエラーが返ってきます。 エラーの内容は下記のとおり。 SQL実行中に以下のエラーが発生しました。 ORA-00907: 右カッコがありません。 しかし、カッコは全部ついているので多分、 比較する書き方ができないのでエラーじゃないかと私は 思うんですが、どうでしょうか?

関連するQ&A