- ベストアンサー
SQLについて
7文字以下ならアスタリスクを表示したいのですが、 どうすればよいのでしょうか? オラクル10Gを使用しています。 SELECT DECODE(ID, LEN(ID) < 7, '*****', SUBSTR(ID,3,5) ) AS ID FROM 情報 おそらく、「LEN(ID) < 7」の書き方が違うのだと思いますが、 どなたか回答をよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DECODE関数の第二引数には,(たぶん数値あるいは文字などの)値しか置くことができません。 「LEN(ID) < 7」(正しくはNo.2さんの回答のとおり「LENGTH(ID) < 7』は値ではないので,この部分の書き方をどう変えてみてもこのままではエラーになります。 希望する処理を行いたいのであれば,参考URL(の下のほう)を参考にSQLを書き直してみてください。
その他の回答 (2)
- X-trail_00
- ベストアンサー率30% (438/1430)
回答No.2
LEN(ID) ではなくLENGTH(ID)
- matui2000
- ベストアンサー率19% (30/155)
回答No.1
今は未満になってるので=を等符号の左側につけてみてはどうでしょう。
質問者
補足
言葉足らずでした。 今のままだとエラーが出て、 まず動かない状態になっているんです。 =をつけてみましたが、結果はエラーが返ってきます。 エラーの内容は下記のとおり。 SQL実行中に以下のエラーが発生しました。 ORA-00907: 右カッコがありません。 しかし、カッコは全部ついているので多分、 比較する書き方ができないのでエラーじゃないかと私は 思うんですが、どうでしょうか?
補足
変更しましたが、エラーが返ってきてしまいます。