2015-04-30 1 views
-2

J'ai créé une vue dont la définition est SELECT [Certaines colonnes liées à l'adresse] FROM TableName. La table de base contient plusieurs millions de lignes. (SQL 2012)Comment limiter le nombre total de lignes qu'une vue SQL peut renvoyer?

Je souhaite que cette vue soit temporairement disponible pour une équipe de développement qui travaille sur l'amélioration des fonctionnalités d'un système de connexion et que je n'ai pas le temps d'être l'intermédiaire chargé de récupérer les données pour eux. Faisant cela. Par conséquent, une vue pour eux de tester leurs déclarations SQL (espérons-le).

Je souhaite toutefois que cette vue renvoie uniquement un maximum de 1 000 lignes répondant aux critères WHERE définis par l'utilisateur connecté. Pour la vie de moi, je ne peux pas trouver quelques conseils sur la façon de le faire.

+0

Avez-vous essayé d'utiliser 'SELECT TOP 1000 ...'? – PinnyM

+0

fournissez votre code d'essai! – Vikrant

+1

(soupir) [*** Avez-vous essayé quelque chose? ***] (http://whathaveyoutried.com) Aussi, je peux voir que vous utilisez SQL Server ... vous * devriez * étiqueter votre question de manière appropriée avec ' sql-server' ... la balise 'sql' est pour des questions générales sur le langage SQL * (et il y a plus d'implémentations que SQL Server là-bas) – Barranka

Répondre

1

Je crois que vous êtes à la recherche de l'expression « TOP » https://msdn.microsoft.com/en-us/library/ms189463.aspx

en studio de gestion, vous pouvez faire un clic droit de la table et sélectionnez la première option, cela va générer le code pour vous. Cela devrait ressembler à ceci:

SELECT TOP 1000 column1, column2, column3 FROM mytable 
1

Vous devez utiliser la fonction TOP pour récupérer un nombre spécifique de lignes de la table.

 Select TOP 100 column1, column2 from sample_table; 

Vous pouvez également utiliser « ORDER BY » en vous requête pour spécifier les lignes (dernière ou la première) vous devez récupérer.

Select TOP 100 column1, column2 from sample_table order by column1 DESC. 
+0

Nous vous remercions de votre réponse plus adulte @Rahul. Utiliser TOP était la première solution à laquelle je me suis tourné, mais en test je trouvais que si la définition de vue contenait SELECT TOP 1000 ... et que je demandais l'affichage avec SELECT * FROM myView WHERE State = NY, la requête ne ressemblerait vraiment dans les 1000 premières lignes de la table sous-jacente. L'objectif est de permettre la recherche de toute la table, mais de garantir que tout ensemble de résultats est plafonné à 1000 lignes retournées. – Monica