teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/03/27 09:26

投稿

yambejp
yambejp

スコア117906

answer CHANGED
@@ -6,5 +6,33 @@
6
6
 
7
7
  まずanyはSQLではサブクエリを指定するので数字の羅列ではなく、
8
8
  あえてやるならUNIONしたSELECT文でしょうか
9
+ ```SQL
10
+ (SELECT 1000 UNION SELECT 2000 UNION SELECT 3000 )
9
11
  ```
12
+
13
+ これに対して出金額=で検証すれば合致するデータはないのでヒットしません
14
+ - 元データ
15
+ ```SQL
16
+
17
+ create table 家計簿 (日付 date,費目 varchar(20), メモ varchar(20), 入金額 int, 出金額 int);
18
+ insert into 家計簿 values
19
+ ('2013-02-03','食費','コーヒーを購入',0,380),
20
+ ('2013-02-10','給料','1月の給料',280000,0),
21
+ ('2013-02-11','教養娯楽費','書籍を購入',0,2800),
22
+ ('2013-02-14','交際費','同期会の会費',0,5000),
23
+ ('2013-02-18','水道光熱費','1月の電気代',0,7560);
24
+
25
+ ```
26
+
27
+ - 検索
28
+ ```SQL
10
- (SELECT 1000 UNION SELECT 2000 UNION SELECT 3000 )
29
+ SELECT * FROM 家計簿 WHERE 出金額 = ANY (SELECT 1000 UNION SELECT 2000 UNION SELECT 3000 );
30
+ ```
31
+
32
+ 一応文法上未満をとれるので試して見ると
33
+ ```SQL
34
+ SELECT * FROM 家計簿 WHERE 出金額 < ANY (SELECT 1000 UNION SELECT 2000 UNION SELECT 3000 );
35
+ ```
36
+ なら拾えるでしょう。ただ、思っているデータがヒットしているかどうかはわかりません。
37
+ 合致させるだけならINで十分だし、未満を取りたいという場合どういった結果を
38
+ 期待しているか具体例がないと答えられないでしょう