Maison > Article > tutoriels informatiques > Comment utiliser une instruction SQL pour générer une donnée dans la table A et la table B en même temps
À l'aide d'instructions de boucle, vous pouvez insérer des données arbitraires.
Code de référence :
supprimer de whilestu1;
s'engager ;
DÉCLARER
numéro1;
numéro maxstuid ;
numéro d'âge ;
date d'anniversaire ;
commencer
num1:=1;
WHILE num1--obtenez le plus gros étalon
sélectionnez max(stuid)+1 dans maxstuid à partir de whilestu1 ;
si maxstuid est nul alors
maxstuid:=1;
fin si;
anniversaire:=sysdate-ROUND(DBMS_RANDOM.VALUE(300,600),0);
âge:=ROUND(DBMS_RANDOM.VALUE(18,40),0);
--Insérer des données
insérer dans whilestu1(stuid,stuName,age,birthday)
values (maxstuid,'student'||cast(maxstuid as varchar2(50)),age,anniversaire);
s'engager ;
num1:=num1+1;
FIN DE BOUCLE ;
fin;
/
-- Je ne sais pas clairement quelle base de données est utilisée. . .
--MS SQL Server2005 ou supérieur, ORACLE
sélectionnez * parmi (
sélectionnez row_number() sur (ordre par heure de début asc) comme rownum,* à partir de steriworkrecord où l'heure de début est comprise entre '2013-11-1' et '2013-12-31'
) un
où rownum entre 2 et 10-- [Remarque (ordre par heure de début asc) est la façon dont vous triez, ascendant, descendant décroissant]
================================================= === =======
--ORACLE est OK
sélectionnez * parmi (
sélectionnez le numéro de ligne comme n,* dans steriworkrecord
où l'heure de début est comprise entre le '2013-11-1' et le '2013-12-31'
) un
où un.n compris entre 2 et 10============================================ === ===============
-- MYSQL, postgreSQL semble n'avoir que des sous-requêtes scalaires
SELECT *DE (
SELECT a.*,(
SELECT count(*) FROM steriworkrecordb WHERE b.ID
de steriworkrecorda
) ts
où ts.n entre 2 et 10
-- [Notez que b.ID
-- Le code est occupé et vous l'avez testé, ok
Sélectionnez * de l'utilisateur où id=1 via l'instruction de requête
Je ne sais pas si votre nom d'utilisateur fait référence à un champ si vous souhaitez obtenir la valeur d'un certain champ dans le tableau.
Vous pouvez sélectionner le nom du champ 1, le nom du champ 2... de l'utilisateur où id=1.
--MS SQL Server2005 ou supérieur, ORACLE
sélectionnez * parmi (
sélectionnez row_number() sur (ordre par heure de début asc) comme rownum,* à partir de steriworkrecord
où l'heure de début est comprise entre le '2013-11-1' et le '2013-12-31'
) un
où le numéro est compris entre 2 et 10
-- [Remarque (ordre par heure de début asc) est la façon dont vous triez, ascendant, descendant décroissant]
--ORACLE est OK
sélectionnez * parmi (
sélectionnez rownum comme n,* dans steriworkrecord
où l'heure de début est comprise entre le '2013-11-1' et le '2013-12-31'
) un
où a.n entre 2 et 10
-- MYSQL, postgreSQL semble n'avoir que des sous-requêtes scalaires
SELECT *DE (
SELECT a.*,(
SELECT count(*) FROM steriworkrecordb WHERE b.ID
de steriworkrecorda
) ts
où ts.n entre 2 et 10
-- [Notez que b.ID
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!