タグ付けされた質問 「sql」

構造化照会言語(SQL)は、データベースを照会するための言語です。質問には、コード例、テーブル構造、サンプルデータ、使用するDBMS実装(MySQL、PostgreSQL、Oracle、MS SQL Server、IBM DB2など)のタグを含める必要があります。質問が特定のDBMSにのみ関連している場合(特定の拡張機能を使用)、代わりにそのDBMSのタグを使用してください。SQLでタグ付けされた質問への回答には、ISO / IEC標準SQLを使用する必要があります。

4
単語のリストのいずれかに対するPostgreSQLワイルドカードLIKE
約25語の簡単なリストがあります。PostgreSQLにvarcharフィールドがあります['foo', 'bar', 'baz']。リストがだとしましょう。これらの単語のいずれかが含まれているテーブル内の行を見つけたい。これでうまくいきますが、もっとエレガントなものが欲しいです。 select * from table where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
156 sql  postgresql 

8
Postgresの一意の制約とインデックス
ドキュメントを理解できるので、次の定義は同等です。 create table foo ( id serial primary key, code integer, label text, constraint foo_uq unique (code, label)); create table foo ( id serial primary key, code integer, label text); create unique index foo_idx on foo using btree (code, label); ただし、Postgres 9.4のマニュアルには、次のように記載されています。 テーブルに一意性制約を追加する推奨方法はALTER TABLE ... ADD CONSTRAINTです。インデックスを使用して一意の制約を適用することは、直接アクセスすべきではない実装の詳細と考えることができます。 (編集:このメモはPostgres 9.5のマニュアルから削除されました。) それは良いスタイルの問題だけですか?これらのバリアントの1つを選択した場合の実際的な結果は何ですか(パフォーマンスなど)?
156 sql  postgresql  unique 

11
MySQLのランク関数
顧客のランクを調べる必要があります。ここで、対応するANSI標準SQLクエリを要件に追加しています。MySQLに変換するのを手伝ってください。 SELECT RANK() OVER (PARTITION BY Gender ORDER BY Age) AS [Partition by Gender], FirstName, Age, Gender FROM Person MySQLでランクを調べる関数はありますか?
155 mysql  sql  rank 

4
Oracleの「(+)」演算子
それらを文書化し、おそらくそれらを拡張する目的で、いくつかの古いSQLステートメントをチェックしています。 DBMSはOracleです 次のような文は理解できませんでした。 select ... from a,b where a.id=b.id(+) (+)演算子について混乱しており、どのフォーラムでも取得できませんでした(引用符内で+を検索しても機能しませんでした)。 とにかく、SQLDeveloperの 'Explain Plan'を使用して、と出力しましたHASH JOIN, RIGHT OUTER。 (+)クエリの最後で演算子を削除すると違いはありますか?データベースを(+)使用する前に、いくつかの条件を満たす必要がありますか(インデックスがあるなど)?? あなたが私に簡単な理解、または私がこれについて読むことができるいくつかの良いリンクを提供できれば、それは非常に役に立ちます。 ありがとう!
155 sql  oracle  join  outer-join 

8
1列のみのDISTINCT
次のクエリがあるとします。 SELECT ID, Email, ProductName, ProductModel FROM Products 重複したメールを返さないように変更するにはどうすればよいですか? つまり、複数の行に同じ電子メールが含まれている場合、結果にはそれらの行の1つ(できれば最後の行)のみが含まれるようにします。他の列での重複は許可されるべきです。 のような句は、行全体で機能するようDISTINCTにGROUP BY見えます。だから私はこれにどのように取り組むかわかりません。
155 sql  sql-server 


5
SQLとMySQLの違いは何ですか?
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 私はデータベースに不慣れで、疑問に思っていました。SQLとMySQLの違いは何ですか?
154 mysql  sql  database 

8
UNION [ALL]でSELECT INTO句を使用することは可能ですか?
SQL Serverでは、これによりCustomersテーブルからtmpFerdeenに100レコードが挿入されます。 SELECT top(100)* INTO tmpFerdeen FROM Customers UNION ALL SELECT全体でSELECT INTOを実行することは可能ですか? SELECT top(100)* FROM Customers UNION All SELECT top(100)* FROM CustomerEurope UNION All SELECT top(100)* FROM CustomerAsia UNION All SELECT top(100)* FROM CustomerAmericas INTO句を追加する場所がわからない。
154 sql  sql-server 

8
SQL Serverで定数1または0のビットを暗示する
selectステートメントでフィールド値として使用される場合、1または0をビットとして表すことは可能ですか? 例えば この場合、ステートメント(selectステートメントの一部)はICourseBasedの型がintです。 case when FC.CourseId is not null then 1 else 0 end as IsCoursedBased それをビット型にするには、両方の値をキャストする必要があります。 case when FC.CourseId is not null then cast(1 as bit) else cast(0 as bit) end as IsCoursedBased 毎回キャストすることなく、値をビット型として表現する簡単な方法はありますか? (私はMS SQL Server 2005を使用しています)
154 sql  sql-server  tsql  bit 

9
データを別のテーブルにコピーする
SQL Serverで、あるスキーマのデータを同じスキーマの別のテーブルにコピー/追加する方法は? 編集: クエリがあるとしましょう select * into table1 from table2 where 1=1 とtable1同じスキーマとデータで作成されtable2ます。 データ全体を既存のテーブルにのみコピーするこのような短いクエリはありますか?

13
SQLとアプリケーションで計算を実行する場合の長所と短所は何ですか
shopkeeper テーブルには次のフィールドがあります。 id (bigint),amount (numeric(19,2)),createddate (timestamp) たとえば、上の表があるとします。昨日のレコードを取得し、金額をセントに印刷してレポートを生成したいと思います。 1つの方法は、Javaアプリケーションで計算を実行し、簡単なクエリを実行することです Date previousDate ;// $1 calculate in application Date todayDate;// $2 calculate in application select amount where createddate between $1 and $2 次に、レコードをループしてJavaアプリケーションで金額をセントに変換し、レポートを生成します 別の方法は、SQLクエリ自体で計算を実行するようなものです。 select cast(amount * 100 as int) as "Cents" from shopkeeper where createddate between date_trunc('day', now()) - interval '1 day' …

13
SQL IN()句の値の順序による順序付け
IN()句の値の順序で並べ替えるのに(おそらくより良い方法が)あるかどうか疑問に思っています。 問題は、2つのクエリがあることです。1つはすべてのIDを取得し、2つ目はすべての情報を取得します。1つ目は、2つ目で並べ替えたいIDの順序を作成します。IDはIN()句に正しい順序で配置されます。 だからそれは(非常に単純化された)のようなものになるでしょう: SELECT id FROM table1 WHERE ... ORDER BY display_order, name SELECT name, description, ... WHERE id IN ([id's from first]) 問題は、2番目のクエリがIDがIN()句に入力されたのと同じ順序で結果を返さないことです。 私が見つけた1つの解決策は、自動インクリメントフィールドを持つ一時テーブルにすべてのIDを入れ、それを2番目のクエリに結合することです。 より良いオプションはありますか? 注:最初のクエリは「ユーザーによって」実行され、2番目のクエリはバックグラウンドプロセスで実行されるため、サブクエリを使用して2を1に結合する方法はありません。 私はMySQLを使用していますが、他のDBにもどのようなオプションがあるかをメモしておくと便利だと思います。
154 mysql  sql  sql-order-by 

8
SQL selectステートメントのOrder By 1の目的は何ですか?
職場で古いコードを読んでいて、order by 1句のあるビューがいくつかあることに気づきました。これは何を達成しますか? 例: Create view v_payment_summary AS SELECT A.PAYMENT_DATE, (SELECT SUM(paymentamount) FROM payment B WHERE PAYMENT_DATE = B.PAYMENT_DATE and SOME CONDITION) AS SUM_X, (SELECT SUM(paymentamount) FROM payment B WHERE PAYMENT_DATE = B.PAYMENT_DATE and SOME OTHER CONDITION) AS SUM_Y FROM payment A ORDER BY 1;
154 sql  sql-order-by 

7
列の値が明確でないすべての行を選択する方法
列の値が明確でないすべての行(EmailAddressなど)を返すselectステートメントを実行する必要があります。 たとえば、テーブルが次のようになっているとします。 CustomerName EmailAddress Aaron aaron@gmail.com Christy aaron@gmail.com Jason jason@gmail.com Eric eric@gmail.com John aaron@gmail.com 返すクエリが必要です: Aaron aaron@gmail.com Christy aaron@gmail.com John aaron@gmail.com 私は多くの投稿を読み、さまざまなクエリを試しましたが、役に立ちませんでした。私がうまくいくと私が信じている質問は以下です。誰かが代替案を提案したり、私のクエリの何が問題になっているのか教えてくれますか? select EmailAddress, CustomerName from Customers group by EmailAddress, CustomerName having COUNT(distinct(EmailAddress)) > 1

4
エラーの原因は何ですか:参照されたテーブルの特定のキーに一致する一意の制約はありませんか?
以下のテーブル構造の例ではエラーが発生します。参照されたテーブルの特定のキーに一致する一意の制約はなく、それを見つめていたので、この状況でこのエラーが発生する理由を理解できません。 BEGIN; CREATE TABLE foo ( name VARCHAR(256) PRIMARY KEY ); CREATE TABLE bar( pkey SERIAL PRIMARY KEY, foo_fk VARCHAR(256) NOT NULL REFERENCES foo(name), name VARCHAR(256) NOT NULL, UNIQUE (foo_fk,name) ); CREATE TABLE baz( pkey SERIAL PRIMARY KEY, bar_fk VARCHAR(256) NOT NULL REFERENCES bar(name), name VARCHAR(256) ); COMMIT; 上記のコードを実行すると次のエラーが発生しますが、これは私には意味がありません。このエラーが発生する理由を誰かが説明できます。私はpostgres 9.1を使用しています …
154 sql  postgresql 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.