lam*_*988 3 sql oracle oracle-sqldeveloper
例如,有一个表:
表: PATIENT_DETAIL
PATIENT_NAME(varchar),
DISEASE(varchar),
SICK_DEGREE(number),
START_TIME(date),
END_TIME(date)
Run Code Online (Sandbox Code Playgroud)
表中有1000名患者,每个患者可能有不同的疾病.有些患有疾病A,有些患有疾病B,有些患有疾病C.
现在我想为每个患者插入一个他们患有新疾病D的记录,但我希望他们有不同程度的疾病.数字可以是1到1000.
我想这样做,但他们都有一定程度的:
INSERT INTO PATIENT_DETAIL
SELECT PATIENT_NAME,
'DISEASE D',
(select dbms_random.value(1,1000) num from dual),
sysdate,
sysdate
Run Code Online (Sandbox Code Playgroud)
插入1000行.
如果代码(从双重中选择dbms_random.value(1,1000)num)生成500,那么所有患者的疾病程度将为500,但我希望它们不同.
您不需要dbms_random.value(1,1000)进入子选择.如果这样做,则首先执行子选择并将其应用于所有后续行.
INSERT INTO PATIENT_DETAIL
SELECT PATIENT_NAME,
'DISEASE D',
dbms_random.value(1,1000),
sysdate,
sysdate
FROM PATIENT_DETAIL
Run Code Online (Sandbox Code Playgroud)