Rumah >tutorial komputer >pengetahuan komputer >Cara menggunakan satu pernyataan SQL untuk menjana sekeping data dalam jadual A dan jadual B pada masa yang sama
Menggunakan pernyataan gelung, anda boleh memasukkan data sewenang-wenangnya.
Kod rujukan:
padam dari whilestu1;
komitmen;
ISYTIHAR
nombor 1;
nombor maxstuid;
nombor umur;
tarikh hari lahir;
mulakan
nombor1:=1;
SEDANGKAN num1--dapatkan stud terbesar
pilih max(stuid)+1 ke dalam maxstuid daripada whilestu1;
jika maxstuid batal maka
maxstuid:=1;
tamat jika;
hari lahir:=sysdate-ROUND(DBMS_RANDOM.VALUE(300,600),0);
umur:=BULAT(DBMS_RANDOM.VALUE(18,40),0);
--Masukkan data
masukkan ke dalam whilestu1(stuid,stuName,umur,hari lahir)
nilai (maxstuid,'pelajar'||cast(maxstuid as varchar2(50)),umur,hari lahir);
komitmen;
nombor1:=bilangan1+1;
GULUNG TAMAT;
akhir;
/
-- Saya tidak tahu dengan jelas pangkalan data yang digunakan. . .
--MS sql server2005 atau ke atas, ORACLE
pilih * daripada (
pilih row_number() over (order by starttime asc) sebagai rownum,* daripada steriworkrecord di mana masa mula antara '2013-11-1' dan '2013-12-31'
) a
di mana rownum antara 2 dan 10-- [Nota (urutan mengikut masa mula asc) ialah cara anda mengisih, menaik menaik, menyah menurun]
================================================ === =======
--ORACLE OK
pilih * daripada (
pilih rownum sebagai n,* daripada steriworkrecord
di mana masa mula antara '2013-11-1' dan '2013-12-31'
) a
di mana a.n antara 2 dan 10 ============================================ === ===============
-- MYSQL, postgreSQL nampaknya hanya mempunyai subquery skalar
PILIH *DARI (
PILIH a.*,(
PILIH kiraan(*) DARI steriworkrecordb DI MANA b.ID
dari steriworkrecorda
) ts
di mana ts.n antara 2 dan 10
-- [Perhatikan bahawa b.ID
-- Kod sedang sibuk dan anda sebenarnya telah mengujinya ok
Pilih * daripada pengguna di mana id=1 melalui pernyataan pertanyaan
Saya tidak tahu sama ada nama pengguna anda merujuk kepada medan, jika anda mahu mendapatkan semula nilai medan dalam jadual.
Anda boleh memilih nama medan 1, nama medan 2... dari pengguna di mana id=1.
--MS sql server2005 atau ke atas, ORACLE
pilih * daripada (
pilih row_number() over (order by starttime asc) sebagai rownum,* daripada steriworkrecord
di mana masa mula antara '2013-11-1' dan '2013-12-31'
) a
di mana rownum antara 2 dan 10
-- [Nota (pesanan mengikut masa mula asc) ialah cara anda mengisih, menaik, menyah menurun]
--ORACLE OK
pilih * daripada (
pilih rownum sebagai n,* daripada steriworkrecord
di mana masa mula antara '2013-11-1' dan '2013-12-31'
) a
di mana a.n antara 2 dan 10
-- MYSQL, postgreSQL nampaknya hanya mempunyai subquery skalar
PILIH *DARI (
PILIH a.*,(
PILIH kiraan(*) DARI steriworkrecordb DI MANA b.ID
daripada steriworkrecorda
) ts
di mana ts.n antara 2 dan 10
-- [Perhatikan bahawa b.ID
Atas ialah kandungan terperinci Cara menggunakan satu pernyataan SQL untuk menjana sekeping data dalam jadual A dan jadual B pada masa yang sama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!