SQL如何插入空值

标签 sql postgresql insert null

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

这是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;

最佳答案

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

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 不同)将列列表放在括号中会使结果成为单个“记录”,而不是单独的列。因此,选择仅返回一个单个列,而不是多个列,因此它与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;

关于SQL如何插入空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442590/

相关文章:

java - 是否可以确定哪些行受到 SQL Server UPDATE 的影响?

SQL 代理无法处理系统日期更改?

Python psycopg2 在 postgresql 表的某些行中插入 NULL

java - 错误 :java. lang.IllegalArgumentException:尝试使用空实体创建 saveOrUpdate 事件

java - Android - SQLiteDatabase 不维护插入

mysql - 在同一个表上使用不同的 group By 子句连接 2 个查询的结果

mysql - 如何加快此 SQL 查询速度

sql - 将文件名合并到 Redshift COPY 中

sql - 即使分组依据中不存在,如何检索数据?

sql - 如何使用不同的自定义生成的主键 SQL Server 插入重复记录