- 締切済み
特定の項目が同じ値のレコードを1件だけ出力するには
guest98の回答
- guest98
- ベストアンサー率23% (4/17)
SELECT DISTINCT * FROM Tbl WHERE Col3 = "ABC1" AND Col4 = "1"; ではどうですか?
関連するQ&A
- JavaScriptでXMLレコードセットの検索・抽出
お世話になります。 blue-horse と申します。 JavaScript上に、データベースのテーブルをXML形式で取出しました。 このXMLレコードセットをSQLのWHERE条件の様に、条件指定して検索・抽出したいのですが、どの様な方法があるのでしょうか。 現在は、ノードを順次巡って一致すればフラグを立て(以下略) と言う方法で考えていますが、ややこしくて仕方ありません。 何か良い方法がございましたら、ご紹介頂ければ有り難いです。 以下、やりたいことサンプル -------------------------------------------------------------- XML1: <recordset> <record row='001'> <col_01>abc</col_01> <col_02>123</col_02> <col_03>XXX</col_03> <col_04>AAA</col_04> </record> <record row='002'> <col_01>abc</col_01> <col_02>456</col_02> <col_03>ABC</col_03> <col_04>AAA</col_04> </record> <record row='003'> <col_01>abc</col_01> <col_02>456</col_02> <col_03>ABC</col_03> <col_04>CCC</col_04> </record> <record row='004'> <col_01>xyz</col_01> <col_02>123</col_02> <col_03>BBB</col_03> <col_04>AAA</col_04> </record> </recordset> 上記のXML1がJavaScript上に取得されており、それを操作して、 col_02 = '456' かつ col_03 = 'ABC' に一致する col_04 の値を抽出したXML2をJavaScript上に生成したい。
- ベストアンサー
- JavaScript
- LIKEを使用したレコード抽出について
OracleでLIKEを使用したレコード抽出で困っています。 あるテーブル(TAB_A)が以下のような属性だとします。 ------------- COL1 CHAR(5) COL2 CHAR(5) このとき、このテーブルに次のようにデータが格納されています。 COL1 COL2 -------------- ABC== 12345 [=]は便宜上1バイトスペースを表す このテーブルを対象として (1) SELECT * FROM TAB_A WHERE COL1 LIKE 'ABC%'; (2) SELECT * FROM TAB_A WHERE COL1 LIKE 'ABC=='; ([=]は便宜上1バイトスペースを表す) (3) SELECT * FROM TAB_A WHERE COL1 LIKE 'ABC'; というSQLを発行した場合に、いずれもレコードが抽出されてしまいます。(1)(2)の場合は当然だとは思うのですが、(3)でもレコードが抽出されることが理解できません。このようなことが起こり得るのでしょうか。
- 締切済み
- Oracle
- 2つの項目が重複するレコードを抽出する方法はありますか?
MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、 ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`) としても重複データが存在する為、作成できませんでした。 10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?
- ベストアンサー
- MySQL
- 2つのテーブルからレコードを抽出する方法
お世話になります。MySQLに関する質問です。 TABLE1とTABLE2の2つのテーブルからレコードを抽出する際、 TABLE1からは全項目のデータを取得し、TABLE2からは一部の項目の データを取得したいと考えています。 条件は、TABLE1とTABLE2を[No]という項目の値で紐(ひも)づけます。 (1) SELECT * FROM TABLE1 (2) SELECT COL_A, COL_B, COL_C FROM TABLE2 上記(1)(2)のレコードを1つのSQLで取得する方法について、どなたかご教授願えますか?
- ベストアンサー
- MySQL
- 重複していないレコードの抽出方法について
下記のテーブルの中で、 no1 フィールドが重複していない列(この場合ですが、200003のみ)を抽出したいのですが、どのような sql 文を書けば良いか分かりませんでした。 その為、このような場合、どのような sql 文を書けば良いかご存知の方がいらっしゃいましたら、 ご教示の程、よろしくお願いします。 【w_tblテーブル】 ―――――――――― |key| no1 |no2| ―――――――――― |1 |200001|1 | |2 |200002|1 | |3 |200001|2 | |4 |200002|2 | |5 |200001|3 | |6 |200003|2 | ―――――――――― 【SQL文】 SELECT `no1` FROM `w_tbl` 【結果】 200001 200001 200001 200002 200002 200003 【SQL文】 SELECT DISTINCT `no1` FROM `w_tbl` 【結果】 200001 200002 200003 【SQL文】 ※※※ここの書き方が分かりません。※※※ 【結果】 200003 以上、よろしくお願いします。
- ベストアンサー
- MySQL
- SQL最大値レコード抽出について
下記のようなテーブルがあったとしてフィールド1のコードごとにフィールド2が最大値のものを抽出したいのですが一回のSQLで可能ですか? フィールド1 フィールド2 abc 20070309 abc 20070302 abc 20070307 def 20070304 def 20070306 def 20070303 ・ ・ ・ 例: abc 20070309 def 20070306 ・ ・
- ベストアンサー
- MySQL
- SQlを使用して指定レコードの削除を行いたい
SQL構文を使用して、テーブル内の指定のデータを削除したいと思っています (oracle11gです) 条件抽出テーブル:PRM_A 抽出条件1の対象カラム:NO_1(6ケタで年月が入っている) 抽出条件2の対象カラム:NO_2(0か1が入っている) 抽出内容:NO_1の年月のうち、最小の値かつ、NO_2の値が0である →抽出結果として、6けたの年月が出力される 削除対象テーブル:DEL_TBL_A 削除条件用カラム1:DEL_COL_1 削除条件用カラム2:DEL_COL_2 削除条件:DEL_COL_1が「抽出結果」の1~4桁目(4桁の数値)と一致し、 DEL_COL_2が「抽出結果」の5~6桁目(2桁の数値)と一致する 以上の処理を行おうとして、まずは前半部分(抽出結果の抜き出しまで)を行いました。 select min(NO_1) from PRM_A where NO_2=0 上記で、想定できる結果の出力ができました。 その次に、削除条件を作成しようとしたのですが、下記の記載で実施したところ、 Error [row:3,col:130] ORA-00936: 式がありません。 と出力されました。 select substr((select min(NO_1) from PRM_A ),1,4) from PRM_A where NO_2=0 and (select min(NO_1) from PRM_A) ; 申し訳ございませんが、理由と正しいSQL文がお分かりになられる方がおりましたら、ご教授願えませんでしょうか
- ベストアンサー
- Oracle
- グループ化の際の文字列について
SQLSERVER初心者でSQLをどうすればよいか 悩んでいます。アドバイスを頂ければと思います。 環境SQLSERVER2005 EXPRESS EDITION 下記のようなレコードでIDに対してどこかの 1項目にだけ文字列がはいっている形となっております。 (他の項目はNULLとなります。) これをIDでグループ化して1レコードにしたいのですが、 どのようなSQLで可能かアドバイス頂ければと思います。 ID COL1 COL2 COL3 1 ABC <NULL> <NULL> 1 <NULL> DEF <NULL> 1 <NULL> <NULL> GHI 上記を下記のようにしたいのですが、 ID COL1 COL2 COL3 1 ABC DEF GHI 以上アドバイスを頂けますと大変助かります。 よろしくお願いします。
- ベストアンサー
- SQL Server
- レコードが選択されないときの、置換ができません
select max(COL_1) from TBL where COL2 = 'hoge'; というようなSQLがあり、この条件での選択されるレコードが存在しないとき max(COL_1)の値を"0"(ゼロ)にしたいのですが。。。 select nvl(max(COL_1),NULL,0) from TBL where COL2 = 'hoge'; と修正しても結果は変わらず「レコードが選択されませんでした。」 となってしまいます。 他にdecodeや、countも試したのですが、力量不足のため、上手くいきません。。 どなたかご教授願います。 Oracle 9i で SQL*Plus 使用しています。
- 締切済み
- Oracle
- SQLiteで最も古いレコードのみの削除
AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます ・ID - primary key not null ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?
- ベストアンサー
- その他(データベース)
お礼
================================================ Col1, Col2, Col3, Col4, Col5, Col6 ------------------------------------------------ No1, Row1, ABC1, 1, DEF1, 1 No1, Row2, ABC1, 1, DEF1, 1 No2, Row1, ABC1, 1, DEF1, 2 No2, Row2, ABC1, 1, DEF1, 2 ================================================ でした。 とりあえずGROUP BYで逃げました。