【问题标题】:SQL How to insert null valueSQL如何插入空值
【发布时间】:2014-03-16 20:33:12
【问题描述】:

我想将数据从另一个表插入到一个表中。在某些列中我没有数据,所以我想将列设置为空。我不知道我该怎么做?

这是 SQL:

INSERT INTO _21Appoint(
   PCUCODE,PID,SEQ,
   DATE_SERV,APDATE,
   APTYPE,APDIAG,D_UPDATE,CID
) SELECT (
   NULL,NULL,NULL,
   treatment_date,appointment_date,
   typeap_id,appointment_id,NULL,patient_id
) FROM cmu_treatment,cmu_appointment
  WHERE cmu_treatment.treatment_id LIKE cmu_appointment.treatment_id;

【问题讨论】:

  • 始终包含您收到的错误消息!

标签: sql postgresql insert null


【解决方案1】:

您的插入基本上是正确的。只是不要将列列表放在括号中:

INSERT INTO _21Appoint
  (PCUCODE,PID,SEQ,DATE_SERV,APDATE,APTYPE,APDIAG,D_UPDATE,CID)
SELECT NULL,NULL,NULL,treatment_date,appointment_date,typeap_id,appointment_id,NULL,patient_id
FROM cmu_treatment,cmu_appointment
WHERE cmu_treatment.treatment_id LIKE cmu_appointment.treatment_id;

在 Postgres(与其他 DBMS 不同)中,将列列表放在括号中会使结果成为单个“记录”,而不是单个列。因此选择只返回一个 single 列,而不是多个列,因此它与 insert

的列列表不匹配

另一种选择是完全省略列:

INSERT INTO _21Appoint
  (DATE_SERV,APDATE,APTYPE,APDIAG,CID)
SELECT treatment_date,appointment_date,typeap_id,appointment_id,patient_id
FROM cmu_treatment,cmu_appointment
WHERE cmu_treatment.treatment_id LIKE cmu_appointment.treatment_id;

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多