Je dois tester mon serveur de messagerie. Comment puis-je faire une déclaration de sélection qui sélectionne dire id = 5469 mille fois. p>
11 Réponses :
dans SQL Server Essayez: sortie: p>
Cela donnera-t-il un résultat défini avec 1000 rangées?
@Spender, voudriez-vous voir l'exemple de sortie 1000 fois? ou est assez assez ?? Si vous ne pouvez pas voir que cela le fait 5 fois et que la sortie de l'échantillon le présente 5 fois, vous avez besoin de beaucoup d'aide. OP ne dit jamais qu'ils veulent un ensemble de résultats avec 1000 lignes, OP dit qu'ils testent et ont besoin d'une instruction SELECT qui sélectionne SAY ID = 5469 mille fois. Code> Une sélection de 1000 lignes est un test assez différent. qu'un seul sélection de 1000 fois.
Je soupçonne juste que ce n'est pas ce que pos demandait. Pour autant que je sache, ils veulent un résultat défini avec 1000x la même rangée. L'impression d'une valeur x fois n'est pas équivalente. Je vois que nous avons une interpréation différente de ce qui a été demandé, c'est tout.
@Spender, vous pouvez remplacer le Imprimer code> avec n'importe quelle instruction, Sélectionner code> génère plusieurs lignes de sortie (en-tête, données, lignes concernées) et utilise plus d'espace de page, donc j'ai opté pour < Code> Imprimer code>.
Je ne savais pas que cette syntaxe existe si définitivement j'apprends une nouvelle chose, mais j'ai aussi appris que ceci est une insertion individuelle et non des inserts par lots.
Si vous le faites dans SQL Server
declare @cnt int
set @cnt = 0
while @cnt < 1000
begin
select '12345'
set @cnt = @cnt + 1
end
Cela renvoie des ensembles de résultats "n" avec une ligne chacun, pas un résultat défini avec "N" fois la même ligne.
Vous pouvez utiliser l'énoncé de l'Union.
Essayez quelque chose comme: p> Vous devez répéter l'instruction SELECT un tas de fois, mais vous pouvez écrire un peu de code VB dans l'accès à la création d'une dynamique. Instruction SQL puis l'exécuter. Pas jolie mais cela devrait fonctionner. P> p>
Wow! Union tout code> x1000 - doute que l'accès peut jamais gérer une telle requête =)
Si je reçois votre signification, un moyen très simple consiste à traverser une requête dérivée sur une table avec plus de 1000 rangées et placez un top 1000 à ce sujet. Cela dupliquerait vos résultats 1000 fois.
Edit: comme exemple (c'est MSSQL, je ne sais pas si l'accès est très différent) P>
SELECT
MyTable.*
FROM
MyTable
CROSS JOIN
(
SELECT TOP 1000
*
FROM
sysobjects
) [BigTable]
WHERE
MyTable.ID = 1234
Pouvons-nous définir une variable au lieu de définir un nombre exact? Par exemple ... Sélectionnez Top @i à partir de ... Code> Parce que j'ai une requête qui a une colonne nommée numéro code>, je veux répéter cette ligne dans numéro code> temps de colonne. Par exemple, si j'ai une ligne que sa colonne numérique est 2, elle répéterait cette colonne deux fois et continuerait à le faire pour toutes les lignes.
Créer une table d'assistance à cet effet:
Just_Number (Num Int Tye Primary) Code>
Insérer (à l'aide de certains (VB) Script) des nombres de 1 à N. Ensuite, exécutez cette requête non adjointe: SELECT MYTABLE.*
FROM MYTABLE,
JUST_NUMBER
WHERE MYTABLE.ID = 5469
AND JUST_NUMBER.NUM <= 1000
Voici un moyen d'utiliser une expression de table commune récursive pour générer des lignes vides, puis pour croiser les rejoindre sur votre ligne souhaitée: substitut @mydata code > Pour votre vraie table et modifiez le prédicat final à la convention. p> p>
Le moyen facile est de créer une table avec 1000 rangées. Appelons-le bigtable code>. Ensuite, vous interrogez pour les données que vous souhaitez et joinriez-la avec la grande table, comme ceci: SELECT MyTable.*
FROM MyTable, BigTable
WHERE MyTable.ID = 5469
Créer une table # TMP1 (ID INT, FLD VARCHAR (MAX))) Insérer dans # TMP1 (ID, FLD) Valeurs (1, 'Bonjour!'), (2, 'World'), (3, 'Belle journée!') P>
Sélectionnez * à partir de # TMP1 aller p>
Sélectionnez * à partir de # TMP1 où id = 3 aller 1000 p>
Table de goutte # TMP1 P>
manière facile ...
Ceci n'existe qu'une ligne dans la DB P> Essayez de relier une autre table dans laquelle n'a aucune clé de contrainte sur la table principale < / p> requête d'origine p> La requête fonctionnelle ... Ajout d'une table non liée appelée 'dbo.tb_labels' p>
à Postgres il y a une belle fonction appelée générate_series. Donc, dans PostgreSQL strong> c'est aussi simple que: de cette manière, la requête est exécutée 1000 fois. P> Exemple pour PostgreSQL: < / p> Comme vous pouvez le constater dans le résultat ci-dessous, les données d'UID sont lues 1000 fois confirmées par la génération d'une nouvelle UUID à chaque nouvelle ligne. P> < Pré> xxx pré> Bien sûr, d'autres DBS n'auront pas nécessairement la même fonction, mais cela pourrait être fait: p> voir ICI . P> P>
MS Access ... à l'aide du système.Oledb :)
Pouvez-vous utiliser Excel pour créer une requête? Essayez-vous de construire une requête de temps ou vous devez avoir besoin de sous-programme ou de fonction VBA?