・trim(to_char(to_numeric(a)-100,'9999'))
・decode(substr(a,5,2),'01',concat(substr((to_numeric(a)-200),1,4),'0')
この2つの文が何をしようとしているのかを教えてください。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Oracleに[to_numeric]という関数はありませんので、
文字列を数値に変換する[to_number]と置き換えて考えます。
1つ目の式
trim(to_char(to_numeric(a)-100,'9999'))
例えば変数aに入る値が1188の場合は100を引いてから、
'9999'の書式を適用するので結果は**[1088]**になります。
2つ目の式
decode(substr(a,5,2),'01',concat(substr((to_numeric(a)-200),1,4),'0')
このまま実行すると「右カッコがありません。」のエラーが出るのですが、
最後の部分のカッコが抜けているのではないでしょうか?
'0') → '0'))
この式の結果は変数aに入る値が123401の場合は、
substr関数で5文字目から2文字目を取得した結果が'01'なので、
concat以下の関数が実行されて元の値123401から200が引かれて123201、
この文字を1から4文字目まで取得して1232、これに'0'を結合した結果
**[12320]**となります。
変数aに入る値の5文字目から2文字取得した結果が'01'以外の場合は、
すべてNullが返ります。
1つ目は運送業の配達物を直接持ち込んだ場合の100円割引の場合の計算式、
2つ目は5文字目から2文字が何らかのフラグ?ステータス?になっていて、
フラグがON('01')の場合は1~4桁の数字から200を引くような処理のように見えます。
差し支えなければこの式が使用されるケースを教えていただけますか?
例えば配送運賃計算、金融系、ショッピング系など。
「何をしようとしているのか」
の回答が思いつくかもしれません。
投稿2015/11/22 02:58
総合スコア345
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
すでに shienaさんからコメントが付いていますが、Oracleの日本語マニュアルは以下に無料で公開されています。
http://www.oracle.com/technetwork/jp/indexes/documentation/index.html
該当バージョンの「SQL言語リファレンス」にお探しの内容が載っています。Database 12c Release 1 なら
http://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/index.html
から[View Library]
左の[ブック]で該当バージョンの全マニュアル
http://docs.oracle.com/cd/E57425_01/121/nav/portal_booklist.htm
を表示するので「SQL言語リファレンス」で
http://docs.oracle.com/cd/E57425_01/121/SQLRF/toc.htm
が表示されます。
10年ちょっと前まで1セット30万円もする紙のマニュアルしかなかったのに、今ではhtmlやpdfのマニュアルが無料です。便利になったものです。
ついでに、無料で使用期限のないOracle Database Express Edition(以下 XE, Standard Editon相当)が
いまのところOracle11.2.0版のみ
http://www.oracle.com/technetwork/jp/database/database-technologies/express-edition/overview/index.html
で公開されています。Oracle SQLの入門の勉強にはこれで十分でしょう。
システム要件は Windowsでしたら
http://docs.oracle.com/cd/E36055_01/install.112/b66470/toc.htm#BABHICJH
の環境を用意してください。
XEはサポート契約はないので、Oracle社カスタマ・サポート・センターへの問い合わせや、パッチの提供はありませんので、XEの商用利用はおすすめできません。
投稿2015/11/02 00:13
編集2015/11/02 02:12総合スコア16415
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。