質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

JOIN

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

5895閲覧

SQL JOINとNVL関数の使い方

walla

総合スコア11

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

JOIN

これはSQL文のJOINに関するタグです。リレーショナルデータベースシステムの二つ以上のテーブルを結合する際に、この構文が利用されます。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2016/04/15 01:46

###前提・実現したいこと
TBL_AとTBL_BをIDで結合し、IDとNAMEを表示させる。
NAMEがnullの場合、「NAMEなし」と表示させる。

###発生している問題・エラーメッセージ

エラーメッセージ ```式がありません。 ###該当のソースコード ```ここに言語を入力 ここにご自身が実行したソースコードを書いてください

SELECT
ID,
NAME
NVL(TO_CHAR(NAME),'NAMEなし'),

  • FROM TBL_A

JOIN TBL_B
ON TBL_A.ID = TBL_B.ID
/

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

これでどうでしょう?

SQL

1SELECT TBL_A.ID, NVL(NAME,'NAMEなし') 2FROM TBL_A 3JOIN TBL_B ON TBL_A.ID = TBL_B.ID

投稿2016/04/15 02:45

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

walla

2016/04/15 04:00

ご協力ありがとうございます。実際のSQL文の列名にスペルミスがあったことが原因でした。 TO_CHAR型の変換は不要でしたね。
guest

0

ベストアンサー

たぶんこの辺が原因かと

SQL

1SELECT 2 A.ID, -- <- AかBのどっちのIDを表示するか書いていない 3 NAME, -- <- まだSELECT項目があるのにカンマがなかった 4 NVL(TO_CHAR(NAME),'NAMEなし') -- <- もうSELECT項目がないなのにカンマがあった 5FROM TBL_A A 6JOIN TBL_B B 7ON A.ID = B.ID 8

まだエラーが出るようならエラーメッセージを載せてください

投稿2016/04/15 02:01

kutsulog

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

walla

2016/04/15 02:15

修正したのですが「式がありません」と表示されます。
walla

2016/04/15 02:41

また、文字化けしてしまってましたが、FROMの前にアスタリスクがあり、それをとって実行すると、「ORA-00900:SQL文が無効です。」とエラーが出ます。
kutsulog

2016/04/15 02:57

どのようにして実行していますか? sqlplusでファイルを読み込んでの実行?
walla

2016/04/15 03:56

すみません、実際のSQL文の方にスペルミスがあり、そこを修正したら動きました。 ご協力ありがとうございました。
guest

0

sql

1SELECT 2ID, 3NAME -- ←次の項目が存在するのに後ろにカンマがない。 4NVL(TO_CHAR(NAME),'NAMEなし'), -- ←次の項目が存在しないのに後ろにカンマがある。 5 6 FROM TBL_A

投稿2016/04/15 01:49

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

walla

2016/04/15 01:53

ありがとうございます。修正しましたが同じエラーが発生します。
tkturbo

2016/04/15 02:29

質問文では「FROM」から後ろがマークダウン記述でリスト扱いになってましたが、ひょっとして実際のSQLも「NVL(TO_CHAR(NAME),'NAMEなし') - FROM TBL_A」のようにハイフンを含んでいたりしませんか?
walla

2016/04/15 03:59

ご協力ありがとうございます。実際のSQL文の列名にスペルミスがあったことが原因でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問