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

SQL標準自体(ANSIまたはISO SQL標準とも呼ばれます)に関する質問については、その標準に準拠したクエリの記述を含みます。このタグは、SQL Server Standard Editionに関する質問には使用できません。

11
SQL:SELECT一部を除くすべての列
SELECT特定の列を除く、テーブル内のすべての列への方法はありますか?ITは、テーブルからすべての非ブロブ列または非幾何列を選択するのに非常に便利です。 何かのようなもの: SELECT * -the_geom FROM segments; テーブルへの列の追加を変更するとクエリ結果が変更されるため、この機能が意図的にSQL標準から除外されたと聞いたことがあります。これは本当ですか?引数は有効ですか? 特にPostgreSQLで回避策はありますか?

3
ANSI SQLがSUM(行なし)をNULLとして定義するのはなぜですか?
ANSI SQL標準定義(章6.5、セット機能仕様)空の結果セット上の集約関数の次の動作: COUNT(...) = 0 AVG(...) = NULL MIN(...) = NULL MAX(...) = NULL SUM(...) = NULL 空のセットの平均、最小、最大は定義されていないため、AVG、MIN、MAXにNULLを返すことは完全に理にかなっています。 ただし、最後の1つは気になります。数学的には、空のセットのSUMは明確に定義されています0。基本ケースがすべての一貫性を保つため、加算の中立要素である0を使用します。 SUM({}) = 0 = 0 SUM({5}) = 5 = 0 + 5 SUM({5, 3}) = 8 = 0 + 5 + 3 SUM({5, NULL}) = NULL = 0 + 5 + …

2
CREATE INDEXとALTER TABLE ADD INDEX-MySQLism、またはSQL Standard?
奇妙な問題に出くわしました。これにより、インデックスの作成方法によっては、インデックス名が必要になります。 http://dev.mysql.com/doc/refman/5.5/en/create-index.html http://dev.mysql.com/doc/refman/5.5/en/alter-table.html CREATE INDEX `random_name` ON `my_table` (`my_column`); # Requires an index name ALTER TABLE `my_table` ADD INDEX (`my_column`); # Does not require an index name CREATE INDEX呼び出しでは、インデックス名が必要にならないように思われます。これがMySQLismなのかSQL標準なのか疑問に思っていますか?

1
CTE(クエリ付き)の最適化フェンスの動作は、SQL:2008標準で指定されていますか?もしそうなら、どこで?
WITHクエリ(共通テーブル式、またはCTE)への頻繁な参照が最適化フェンスとして機能し、サーバーがフィルターをCTEクエリにプッシュダウンしたり、共通式をCTEから取り出したりすることを許可されていないことがよくあります。 SQL標準で要求される動作であるため。 CTEは間違いなくPostgreSQLの最適化フェンスです...しかし、これは標準で必要なのですか、実際には実装の詳細だけですか? たとえば、これらのメーリングリストの投稿は、それが標準であると主張または示唆しています。 http://www.digipedia.pl/usenet/thread/11566/101385/ コメントでそれを言及した後、私はそれがどこに指定されているのか尋ねられました-そしてSQL:2008の唯一のドラフトを見た後、私はそれを見つける運があまりありません。 私はまだ標準を徹底的に研究していないので、次のような人からの提案を期待しています。もしそうなら、それはどこに指定されていますか?または、Pgメーリングリストのステートメントにエラーがありますか? ToDoリストのスレッドCTE最適化フェンスも参照してください。。

2
SQLの最初の標準化であるSQL-86はどこにありますか?
この質問は異なりますが、SQL-89を探すこのリクエストに似ています。 SQLの最初のドラフトには、SQL-86というラベルが付いています。多数の参照が作成されています。これはダウンロードできますか?ウィキペディアには、そのためのページすらありません。歴史的な理由で興味があります。 とも呼ばれるようです ANSI X3.135-1986 CAN / CSA Z243.47-88 ISO 9075:1987 SQL / 1 NBS FIPS 127 仕様は、ANSI技術委員会X3H2から来た期間の文書で引用されています。 webstore.ansi.orgがあることは知っていますが、X3.135-1986ドキュメントが見つかりません。ただし、Searching for でX3.168-1989利用可能な仕様をX3.135-1992見つけることはできますが、1986年の仕様を購入することはできません。both X3.168X3.135

3
このクエリの正しい結果は何ですか?
ここのコメントでこのパズルに出会いました CREATE TABLE r (b INT); SELECT 1 FROM r HAVING 1=1; SQL ServerとPostgreSQLは 1行を返します。 MySQLおよびOracleはゼロ行を返します。 どちらが正しい?または、両方とも同等に有効ですか?


1
ANSI / ISOはLIMIT標準化を計画していますか?
現在、クエリによって返される結果の数を制限する最良の方法を標準化する計画はありますか? スタックオーバーフローの質問は、MYSQL LIMITキーワードに代わるANSI SQLはありますか?は、この動作をさまざまな言語で処理するさまざまな方法を示しています。 DB2 -- select * from table fetch first 10 rows only Informix -- select first 10 * from table Microsoft SQL Server and Access -- select top 10 * from table MySQL and PostgreSQL -- select * from table limit 10 Oracle -- select * from …

1
SQL仕様ではEXISTS()にGROUP BYが必要ですか?
マイクロソフトでは現在、この構文を許可しています。 SELECT * FROM ( VALUES (1) ) AS g(x) WHERE EXISTS ( SELECT * FROM ( VALUES (1),(1) ) AS t(x) WHERE g.x = t.x HAVING count(*) > 1 ); ノーがあることに注意してくださいGROUP BYにEXISTS句は、その有効なANSI SQLです。それとも単に実装の詳細を公開するだけなのでしょうか。 参考までに、これと同じ構文はPostgreSQLでは許可されていません。 エラー:列 "tx"はGROUP BY句に出現するか、集計関数で使用する必要があります しかし、この構文は許可されています。 SELECT * FROM ( VALUES (1) ) AS g(x) WHERE EXISTS …

2
副作用のある標準SQL関数はありますか?
SQL標準は副作用のある関数を定義していますか? たとえば、ファイルに書き込むための関数や、次のような場合にテーブルの特定の列の値を更新する関数がありますか? SELECT myfunction(params...); これらを時々見たことがありますが、SQL標準が同じことをしているのかどうか知りたいだけです。 *これは特にPostgreSQLに関する質問ではありません。私はPostgreSQLで見られる副作用の例のみを使用しています。

3
キーワード「ALIAS」は実際に使用されていますか?
PostgreSQL 7.1から9.1(現在はサポートされていません)によればALIAS、少なくともSQL-99では予約語としてリストされています。それ以降のバージョンでは表示されません-予約語として削除されたことを示しています。古いPostgreSQLのドキュメントには、「キーワードの存在は機能の存在を示すものではありません」と書かれています。テーブルまたは列にエイリアスを付けるとき、私は見ましたが、見ASたことはありませんALIAS。 SQLキーワードはどこでALIAS使用されましたか(または使用されましたか)?使用中だったのか、将来使用するために予約されただけなのか。

4
SQL Server 2016の移植性を最大化するためのベストプラクティス
ソリューションのプロトタイプを開発する場合、多くの場合、テクノロジーはまだ決定されておらず、完成品で使用されるものと同じではない可能性があります。 このシナリオでは、別のサーバーへの最終的な移行を簡略化するために、Microsoft SQL Serverを使用してクエリをできるだけ標準的に作成する傾向があります。 SQL Serverで直接、またはSQL Server Management Studio(SSMS)を介して、T-SQLダイアレクトを介した標準SQLの使用を強制する方法またはいくつかの既知の方法はありますか?

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