問題タブ [row-value-expression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL in 句でタプルを使用する
次のようなデータベースがあるとします。
に沿って何かをしたい
答え 'one','three' を取得するには、「near ",": syntax error」を取得しています
これは SQL の任意のフレーバーで可能ですか? (私はsqliteを使用しています)
私は重大な概念上の誤りを犯していますか? または何?
sql - SQLでタプルのグループを比較する方法
SQL でタプルのグループを比較する方法: 次の例を検討してください。
両方のテーブルの値のグループを比較し、違いを報告する SQL クエリを作成したいと考えています。図の例では、テーブル a: ((A,FOO),(A,BAR)) のグループは、グループ名は異なりますが、グループ ((C,FOO),(C,BAR)) と同じです。 . 重要なのは、グループの内容が同じであることです。最後に、クエリは違いがあることを報告します。それは (B,ZOO) タプルです。
T1 に ZOO を含むグループ X は T2 に一致する値 (B,ZOO) を持っていますが、グループは (B, ZOO) グループの一部ではない (X, HHH) 値も持っているため、まだ一致していません。 T2で
sql - SQL のタプルのセットで IN を使用する (SQLite3)
SQLite3 データベースに次のテーブルがあります。
次のクエリを実行したいと思います。
つまり、アノテーション ID のタプルがいくつかあり、それらのタプルごとにレコードを取得したいと考えています。sqlite3 プロンプトで次のエラーが表示されます。
これをSQL文として適切に表現するにはどうすればよいですか?
編集私が本当に求めているものをうまく説明していないことに気づきました。これで別のクラックを試してみましょう。
ある人が興味のある用語の任意のリストをくれた場合neighbors_of_annotation
、次のような SQL ステートメントを書くことができます。
しかし今、その人が(TERM_1,1, TERM_1,2)
, , (TERM_2,1, TERM_2,2)
...,という形の用語のペアを私に与えたいと思っているとします。SQL 言語は、関心のあるペア (タプル) のクエリを定式化するための同様に洗練された方法を提供しますか?(TERM_N,1, TERM_N,2)
TERM_i,1
neighbors_of_annotation
TERM_i,2
other_annotation
最も簡単な解決策は、これらのペアのためだけに新しいテーブルを作成し、そのテーブルをクエリ対象のテーブルに結合し、最初の用語と2番目の用語が一致する行のみを選択することです。大量のAND /
OR
ステートメントを作成するのは恐ろしく、エラーが発生しやすいように見えます。
sql - SQLクエリの`WHERE`句で*タプル*を比較することは可能ですか?
SQLクエリの句でタプル(ありがとう、a_horse_with_no_name)を比較することは可能ですか? WHERE
そうすれば、これを変換できます:
これに似たものに:
mysql - SQL:タプルの比較
現在のアプリケーションでは、次のタイプのクエリを実行できる必要があります。
(333, 'B', 'B')
このデータを前提として、の答えを取得します。
実際のSQLでこれを実現するための最も効率的な方法は何ですか?これはおもちゃの例であり、私の実際のアプリケーションには、さまざまな列とデータ型、および数億行のテーブルがあることに注意してください。それが助けになるなら、私はMySQLを使います。これらの列には、PRIMARYまたはUNIQUEインデックスがあると想定することもできます。
ソリューションがより多くの/より少ない列に簡単に拡張できる場合、それはさらに優れています。
タプルの比較:
何人かが質問したので、これを質問に入れる必要があります。タプルは辞書式順序で並べられます。つまり、シーケンスは最初の異なる要素と同じ順序になります。たとえば、(1,2、x)<(1,2、y)はx<yと同じものを返します。
SQL(または少なくともmysql)がこれを正しく実装していることに注意してください。
例を作成するために必要なSQLは次のとおりです。
このインデックスを追加すると、テーブルが辞書式にソートされるように見えます。これは興味深いことです。これは私たちの生産システムには当てはまりません。
sql - SQLite タプルの等値比較
PostgreSQL と MySQL では、次のようにしても問題ありません。
SQLite3 で同じことを試してみたところ、次のようなエラー メッセージが表示されました。
SQLite のドキュメントから、タプルをサポートしているかどうかわかりません。誰でもこれに光を当てることができますか?
sql - sqlite タプル比較
この質問と同じことをしようとしていますが、今回はsqliteで。現在のアプリケーションでは、次のタイプのクエリを実行できる必要があります。
('Liz', 'Jordan', 2)
次のデータが与えられると、 の答えが得られます。
sqliteでこれを達成する最も効率的な方法は何ですか? これはおもちゃの例であり、私の実際のアプリケーションには、より多くの列とデータ型、および数億行のテーブルがあることに注意してください。
ソリューションがより多くの/より少ない列に簡単に拡張できる場合、それはさらに優れています。
タプル比較:
タプルは辞書順に並べられます。つまり、シーケンスは最初の異なる要素と同じ順序になります。たとえば、(1,2,x) < (1,2,y) は x < y と同じ結果を返します。
SQL-92 (および mysql、oracle、postresql) がこれを正しく実装していることは注目に値します。標準では、「行値コンストラクター」を使用して、私がタプルと呼んでいるものを示します。動作は、パート 8.2.7、ページ 209で非常に詳細に定義されています。
この例を作成するために必要な SQL は次のとおりです。
sql - SQL Where 句
私のアプリケーションには最初、次のようなクエリがありました:-
list はカンマ区切りのリストです。
しかし、要件が変更されたため、名前と年齢を指定して Persons テーブルにクエリを実行する必要があります。私はAgeListという名前を持っています。
最初は、これに似たクエリが機能すると思いました(nameAgeListからnameListとageListを作成します)
しかし、よく考えてみると、これは間違ったクエリのようです。
このクエリの進め方を教えてください。
sql - SQLの「IN」句でタプルを使用する
group_idフィールドとgroup_typeフィールドを含むテーブルがあり、タプルのリストから任意のタプル( group id、group type )を持つすべてのレコードをテーブルに照会したいと思います。たとえば、次のようなことができるようにしたいと思います。
非常によく似た質問がすでに出されています:sql in節でタプルを使用しますが、そこで提案されたソリューションは、タプルリストが別のテーブルからフェッチされることを前提としています。私の場合、これは機能しません。タプル値がハードコーディングされているためです。
1つの解決策は、文字列の連結を使用することです。
ただし、問題は、テーブルが非常に大きく、各レコードに対して文字列の連結と変換を行うと非常にコストがかかることです。
なにか提案を?
sql - SQLWHEREIN句のマルチキー
列がPKであり、一意性制約であるAccounts
テーブルがあるとします。ID
TaxID+AccountNumber
ここで、自然キーを使用して同様のクエリを実行します。
したがって、これにはタプルが含まれ、かなり正当に見えます。ANSI SQLでなんとか表現することはできますか?たぶん、いくつかの特定のSQL拡張で?そうでない場合は、なぜ(推測に感謝します)?