oracle中,我想将同一张表的字段修改为true 然后在修改为false 使用同一条sql语句
时间: 2023-05-22 18:04:35 浏览: 179
你可以使用以下 SQL 语句来实现:
UPDATE mytable SET myfield = NOT myfield;
该语句将会把 "mytable" 表中 "myfield" 字段的值从 true 改为 false,或者从 false 改为 true。
相关问题
oracle中一年中根据4个季度查询某个字段为true时和false时的每个季度数据数量
您可以使用如下SQL查询来获取每个季度中字段为true和false的数据数量:
```
SELECT
TO_CHAR(your_date_column, 'Q') AS quarter,
COUNT(CASE WHEN your_field = 'true' THEN 1 END) AS true_count,
COUNT(CASE WHEN your_field = 'false' THEN 1 END) AS false_count
FROM
your_table
WHERE
TO_CHAR(your_date_column, 'YYYY') = '2021'
GROUP BY
TO_CHAR(your_date_column, 'Q')
ORDER BY
TO_CHAR(your_date_column, 'Q');
```
其中,`your_date_column` 是包含日期的列,`your_field` 是需要统计的字段。这条SQL语句将在当前年份(2021年)内,按季度分组并统计每个季度中字段为true和false的数据数量。
创建一个每年一月一日将HC表中a字段等于1的数据修改为a字段等于2的oracle job
可以使用以下的 SQL 语句创建一个每年一月一日执行的 Oracle Job,将 HC 表中 a 字段等于 1 的数据修改为 a 字段等于 2:
```
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'update_hc_table',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN UPDATE HC SET a = 2 WHERE a = 1; END;',
start_date => TO_DATE('01-JAN-2022 00:00:00', 'DD-MON-YYYY HH24:MI:SS'),
repeat_interval => 'FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=1',
enabled => TRUE);
END;
```
这个 Job 的名称是 `update_hc_table`,类型是 PL/SQL 块,执行的动作是将 HC 表中 a 字段等于 1 的数据修改为 a 字段等于 2。它的开始时间是每年的 1 月 1 日,重复间隔是每年一次,启用状态为 TRUE。