私は理解できないSQLクエリの最後を持っています:UNION ALL SELECT TOP 1 NULL,NULL
SQLでは、ALL SELECT TOP 1 NULL、NULLは何をしますか?
誰かがそれを段階的に説明できますか?
乾杯
私は理解できないSQLクエリの最後を持っています:UNION ALL SELECT TOP 1 NULL,NULL
SQLでは、ALL SELECT TOP 1 NULL、NULLは何をしますか?
誰かがそれを段階的に説明できますか?
乾杯
あなたは正しくクエリを "解析" しませんでした:ALL
はUNION ALL
のように、ではないSELECT
に、UNION
に属します。
クエリの部分SELECT TOP 1 NULL, NULL
は、SELECT
を超えるUNION ALL
の結果に2つのNULL
列の行を追加するだけです。あなたが望むなら、それは不要なので、TOP 1
をドロップすることができます。例えば
クエリを持っている場合は、
SELECT FirstName, LastName
FROM User
UNION ALL
SELECT NULL, NULL
、このようなクエリでは、2 NULL
秒の単一のタプルが続き、テーブルUser
からFirstName, LastName
タプルのリストを生成します。
このトリックは、クエリからデータを受け取るプログラムがいつ読み込みを停止するかを決定するのに便利です。しかし、このハックは、RDBMSがUNION ALL
の下部で生成されたNULL
のペアを他の名前の前、後、または真中に返すことが許可されているため、ハックの境界になります。
トップはここでは不要です。 – sagi
@サギもちろんです。私の理解は、誰かがこのクエリを書いたことであり、OPはそれを理解しようとしています。質問を書いた人は誰でも「TOP 1」を置くので、そこに置いておくこともできます。 – dasblinkenlight
あなたの質問からデータを受け取ったプログラムは、いつ読み込みを止めるかを決めることができます*保証がないので、この追加されたタプルは結果セットの最後の行になります... – Shnugo
「UNION ALL」(NULLを含む)とMS SQL Serverの「TOP」をチェックしてください。 – jarlh
これは、より大きなクエリの断片に過ぎません。あなたは全体の質問または少なくともそれの代表的なサンプルを投稿できますか? –