SQLの具体的なプログラム方法を教えていただく投稿させていただきました
列1 |列2
1 |1
1以外 |2
上記の条件で抽出できる条件がわからず、教えていただきたいです。
現行、
IIf([列1]=1,"1","2")
と定数なら記述できるのですが、
列2はどちらも列2の値(具体値は不明)が必要なんです。
1以外という行のデータの列2の値を得れなくて・・・・
最悪な方法として、DBデータを手で増やし、
列1 |列2
1 |1
2 |2
3 |2
4 |2
・・・・
1000 |2
と変更してしまえば
WHERE [列1] = hoge
で抽出できるのですが、現実的だと思えなくて・・・・
良い方法がありましたら、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
補足、ありがとうございます。
マスタテーブル:YYY に「その他の場合」の値として列1がNULLの行を登録しておくとすると、下記の様な方法が考えられます。
・別テーブルとマスタテーブルを LEFT OUTER JOIN
・列2がnullになった行には、マスタテーブルの列1がNULLの行の列2の値を設定
例) --------------------------------------------------------------
SELECT
XXX.列A,
CASE WHEN YYY.列2 IS NULL THEN
(SELECT 列2 FROM YYY WHERE 列1 IS NULL)
ELSE YYY.列2 END AS 列2
FROM
XXX LEFT OUTER JOIN YYY ON(YYY.列1= XXX.列A)
------------------------------------------------------------------
No.2
- 回答日時:
問合せしたいテーブルを、別のテーブルの登録内容に従って、
読み替えつつ表示する、と考えれば良いのかと思いますが、
"1以外"という条件をテーブルに、どのように登録するかが
難しいように思います。
(取り決めの問題と言えばそれまでですけどね)
例えば、"1以外"を、nullをキーとして登録したとすると・・
条件TBL
列1列2
11
(null)2
テーブル1
列A
1
2
3
4
select nvl(列2,列X)
from
テーブル1,
条件TBL,
(select 列2 列X from 条件TBL where 列1 is null)
where 列A=列1(+)
;
のような外部結合を使った問合せが可能です。
No.1
- 回答日時:
ちょっと何をされたいのか明確に分かりません。
元のテーブルに格納されている値と、取得したい値を分けて提示して頂けると回答がし易くなるかと。
とりあえず、下記の2通りの解釈の場合の例を書きます。
1. 列1と列2の値が共に1の行と、列1の値が1以外で列2の値が2の行を取得したい。
SELECT 列1, 列2, ・・・ FROM XXX WHERE (列1 = 1 AND 列2 = 1) OR (列1 <> 1 AND 列2 = 2);
2. テーブルから列1の値を取得し、それが1だった場合は列2に1を設定し、1以外だった場合は2を設定する。
SELECT 列1, CASE 列1 WHEN 1 THEN 1 ELSE 2 END AS 列2 FROM XXX;
この回答への補足
内容が不明瞭で申し訳ないです。
「列1をキーとして列2の値が取得したい」が目的です
マスタテーブル:YYY
列1 |列2
1 |1
1以外 |2
SELECT 列2
FROM YYY,別テーブル
WHERE ※※ここの条件を知りたい※※
例えば
別テーブル:XXX
列A
1
2
3
SELECT 列2
FROM YYY,XXX
WHERE YYY.列1=XXX.列A
では
×実行結果
1
となってしまいます。
そこで、XXXというテーブルで参照した時に、下記のような結果になるような方法をお伺いしたいのです。
○実行結果
1
2
2
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) AdvancedFilterについての質問 2 2022/07/02 22:58
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
うまくいきません教えてくださ...
-
SQLです。こんな感じですか?あ...
-
accessで在庫管理
-
update文で改行を入れる
-
SELECT 文の NULL列は?
-
テーブルリンク リンク元を知...
-
テーブル名をカラムとして取得...
-
一つ前に戻るには…
-
Accessのテーブルデータを一気...
-
Accessでデータシートに同じデ...
-
会社の飲み会の幹事になり、座...
-
Notion@リレーション値の取得...
-
件数の多い順にselect
-
外部キーだけのテーブル(主キ...
-
SQL、2つのテーブルで条件一致...
-
男性と2人で飲食店に行きテーブ...
-
JavaScriptでAccessのテーブル...
-
「テーブルに座って……」という...
-
論理名とコメント構文(?)について
-
SQL update方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLです。こんな感じですか?あ...
-
うまくいきません教えてくださ...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
accessで在庫管理
-
サブクエリを使用せずにLEFT JO...
-
現在庫算出方法についてお教え...
-
SQL CASE文に制御について
-
access結合クエリを編集可能に
-
相関サブクエリの中で、グルー...
-
Access 出荷管理簿を作りたい...
-
SQLの作成方法
-
グループごとの最高得点者一覧...
-
update文におけるwhereとjoinの...
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
一つ前に戻るには…
-
update文で改行を入れる
おすすめ情報