問題タブ [ansi-sql]
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 - それ自体と結合されたテーブルに対するクエリ
今日は期末試験があります。私は喜んで承認しました:Dしかし、問題の1つが本当に私の心を吹き飛ばしています.
助けが必要なので、安心して休むことができます。
問題
「人」というテーブルがあります
これはデータの一例です。このテーブルは、テーブル id(PK) を持つテーブル FatherId(FK) で、それ自体との関係を持っています。2 つの列を表示するクエリを実行する必要があります。 .
ここまではかなり簡単ですよね?問題は、私にはいくつかの制限があることです
- ANSI のみが許可されます。NO T-sql、または別のもの。また、2003年以降ではなく、ANSI 99規格
- サブクエリは許可されていません。そして最悪:
- 繰り返される関係はありません。
たとえば、この例を考えると、gon と maria はいとこです。表示gon | maria
すると、結果に表示できませんmaria | gon
。
どうすればこれを行うことができますか?本当に私の頭を燃やしています。
私が試したことは?
さて、大きな問題は、最後の要件であるデータの繰り返しにありました。それを無視して、私はこれを私の試験に入れました(知っているのは間違っています..)
もちろん、これは最後の要求を解決しているわけではなく、テストで 4 を獲得しました (4 で合格) が、とにかく、私の頭は燃えています。助けてください!
検討された別のオプション
同じ試験を受けた私の友人の一人が私に言った
「まあ、すべての関係が重複していることを考えると、トップカウント(*)とオーダーバイを使用して、半分を正しく取得できます」
しかし、そうでTop
はありませんANSI
!
sql - ANSI SQL:2008: TRUNCATE または TRUNC は SQL 関数ですか?
ANSI SQL:2008: TRUNCATE または TRUNC は SQL 関数ですか? ANSI SQL:2008 はどこにありますか?
sql-server - COUNT(col) の NULL について警告するのはなぜですか?
これは少し哲学的な質問だと思います...
SQL Server で次のクエリを実行するとします。
カウントされた列には NULL が含まれており、ANSI_WARNINGS オプションがオンになっているため、次のようになります。
警告: Null 値は、集計またはその他の SET 操作によって削除されます。
これが何を意味するのか理解しています。そして、この警告を「修正」する方法はたくさんあります。でも……そもそもなんで文句言ってるの?
NULL をスキップするだけで十分ですCOUNT(mycolumn)
。この列の NULL を含むすべての行をカウントしたい場合は、 COUNT(*)
. NULL をスキップするのが私の意図であることは明らかではありませんか?
この明らかなケースであっても、ANSI 標準ではこの警告が要求されていると思います。なんで?
mysql - SQL: ANY/SOME および ALL キーワードは必要ですか?
私は 10 年以上 SQL (SQL Server、PostgreSQL) を使用していますが、まだ使用したことがなく、本番コードでキーワードを使用ANY/SOME
していません。ALL
私が遭遇したすべての状況は、、、、、で回避でき、IN
より読みやすいと思います。MAX
MIN
EXISTS
例えば:
または
ANY/SOME
と の使用ALL
:
質問は次のとおりです。他のソリューションに勝る状況はありANY/SOME
ますか?ALL
sql - SQL Server 2008 使用時の ANSI での出力
BAtch ファイルを介して SQL Server で選択クエリを実行する必要があり、出力は ANSI 形式である必要があります。実行するたびに、出力は Unicode のようです。後続ジョブは、クエリの出力が入力として使用される exe ファイルを使用します。
右クリックしてオプションとして保存することは知っていますが、そのコードを変更する方法がわかりません。どんな助けでも大歓迎です
mysql - 列の SQL 制約
NumberInStock という列があります。ただし、データベースでは、この列に入力できる値を 1 から 100 に制限したいと考えています。列で使用する制約はどれで、SQL クエリの適切な構文になりますか? 私がこれまでに得たものは次のとおりです。
次に、制約を設定するためにその後に何を置き、どの制約を使用しますか
1999 ANSI/ISO 標準の MySQL を使用しています。