ORACLE 语句 怎么加一列 10C

select * from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid

) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'

图片说明
如图,我需要在查询出来的展示列里在加一列,这个列就是最外边where条件后的case when 的结果,现在他的值作为判断等于1了,能起别名什么的也行,只要能出来一列就行,怎么做?

0

8个回答

select * from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end ) dqsj,
(case
when (case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end )>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when (case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
end )<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end ) nowdate1,
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid

) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'

2

你看一下行列互换的方式就知道了

2
select m.*,
(case 
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1' 
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2' 
end) value 
from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime, 
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi') 
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf 
where t.processinstid= wf.processinstid

) m 
where m.dqsj > '2018-06-20 17:44'
and 
(case 
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1' 
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2' 
end )='1' 
2
qq_42238868
qq_42238868 行列互换的方式
大约一年之前 回复
xyt3198
xyt3198 回复Lzjshiqi: 上面的sql是已经改好的了,直接执行试试
大约一年之前 回复
xyt3198
xyt3198 回复Lzjshiqi: 可以了吗?
大约一年之前 回复
Lzjshiqi
Lzjshiqi value
大约一年之前 回复
Lzjshiqi
Lzjshiqi 随便加
大约一年之前 回复
xyt3198
xyt3198 value这一列就是了
大约一年之前 回复

实在不行可以直接用鼠标操作啊 直接点表 然后修改表 试试

1

列名用常量,然后增加一个别名

1

alter可以修改表的属性

0

图形化管理工具就可以了啊

0

在第一个select 里面加上条件后面的case when 设置一个别名做为列输出。
select (case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end ) m_values,m.*
from
(select t.lsh,t.sqrid,t.sqrmc,t.sqbmid,t.sqbmmc,t.processinstid,t.lxfs,t.ym,
wf.endtime,
(case t.syqx
when '1' then to_char((SELECT add_months(wf.endtime,6) months from dual),'yyyy-mm-dd HH24:mi')
when '2' then to_char((SELECT add_months(wf.endtime,12) months from dual),'yyyy-mm-dd HH24:mi')
--else '-1'
end ) dqsj
from t_jbhf_ymsq t,
wfprocessinst wf
where t.processinstid= wf.processinstid

) m
where m.dqsj > '2018-06-20 17:44'
and
(case
when m.dqsj>to_char(sysdate,'yyyy-mm-dd HH24:mi') then '1'
when m.dqsj<=to_char(sysdate,'yyyy-mm-dd HH24:mi') then '2'
end )='1'

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Oracle:SQL语句--对表的操作——添加一个字段 (即 添加 一列)
– 添加一个字段 (即 添加 一列)(未验证在有数据,并且互有主外键时,是否可用)语法:alter table 表名 add(列名(即 字段名) 数据类型及长度);例:alter table T_Student2 add(phone number);
Oracle 添加列、删除列
--添加一列 ALTER TABLE table_name ADD column_1 DATE NOT NULL; ALTER TABLE table_name ADD column_2 VARCHAR2(44) DEFAULT ''; ALTER TABLE table_name ADD column_3 number(28,10); --添加一列 ALTER TABLE table_n...
Oracle增加一个排名列(序号列)
Oracle查询时增加一个排名列,对用户活跃率进行排名:select row_number() over(order by act_rate desc) rank,act_rate from act_rate_table;注:rank:排名列别称act_rate:用户活跃率...
在ORACLE中给表、列增加注释以及读取注释
在ORACLE中给表、列增加注释以及读取注释     1、给表填加注释:SQL>comment on table 表名 is '表注释"; 2、给列加注释:SQL>comment on column 表.列 is '列注释'; 3、读取表注释:SQL>select * from user_tab_comments where comments is not null; 4、读取
用SQL统计增加一行或者一列的合计
-- 用SQL统计增加一行或者一列的合计 -- .方法一 WITH STUDENT AS (SELECT 'STUDENT1' NAME1, 1 VALUE FROM DUAL UNION ALL SELECT 'STUDENT2' NAME1, 2 VALUE FROM DUAL UNION ALL SELECT 'STUDENT3'...
oracle 在查询结果中增加一列不存在的字段
问题背景: 现在假设有一张表tb_a, 表中字段有aa,bb,cc, 查询整个表内容: select a.* from tb_a a   现在想在查询出来的结果集中增加一列字段名为name,值为‘张三’的一列 解决方法 那么sql语句应该这样写 select a.*,'张三' name from tb_a a  ...
Oracle 增加修改删除字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….); 删除字段的语法:alter table t...
MySQL数据库——使用SQL语句在指定列后添加列
alter table tablename add column columnname varchar(20) not null after somecolumn;注:这是MySQL的,tablename是要修改的表名,columnname是新增列,varchar(20) 是新增字段类型,not null是指新增字段不能为空值,somecolumn是原来的列...
oracle 将同一张表查询出来的列放到新增加的一列
alter table tablename add(filename1 varchar(11)); //新增加一列 update TYPHOONS set YEAR = (SUBSTR(TID, 1,4)) //将查询出来的列的结果放入到新增加的一列里面(前提:同一张表) ...
在ORACLE中给已有数据的表增加、修改、删除一个字段(或一个列)或者多个字段(或多个列)的问题
使用数据库为Oracle 因为在将数据从历史表导入当前表时,因字段个数不对,导致不能导数据。 一、将历史表的字段增加一个或者多个的SQL语句。 1、增加一个字段:(增加字段时,只能排在已有字段的后面,不能插到已有字段之间) Alter Table t_app_si_addr_12 Add CHG_ADDR_FLAG varchar2(2); Alter Table 表名 Add 字段名称...
oracle中建视图额外增加列
例如在视图v_user中额外增加一列type,给其取值1.create or replace view v_user as select *, '1' type from user;
Oracle:SQL语句--对表的操作—— 删除字段(即删除列)
– 删除一个字段(未验证在有数据,并且互有主外键时,是否可用)语法:alter table 表名 drop column 字段名(即列名);例:alter table T_Student2 drop column sex;
oracle 表间更新列数据的sql语句
表A(id,name,age,home_adders,phone_number) 和 表B(id,name,adders,number) 两张表,两张表有id和name两个相同的字段,并且能够唯一确定一行,将表B中的adders和number信息更新到表A的home_adders和phone_number字段中,语句如下:update A a SET (a.home_adders,a.phone_
Oracle select查出需要的数据,并增加一列,定义查出的数据值
select t.daytime,‘2018-2-20’ day1 from test_0219_2 t 查出该表中daytime列的所有值,并为该查询出的数据,增加一列day1,该列值全为2018-2-20
Oracle 中对一个表中多个列的增加和删除的sql语句
Oracle 中对一个表中多个列的增加和删除的sql语句: ·增加多个列 alter   table   表名  add(列名1   VARCHAR2(20),列名2 VARCHAR2(64 char),列名3  VARCHAR2(200)); ·删除多个列 alter   table   表名   drop(列名1,列名2,列名3); ·如果增加
oracle:sql添加合计语句(union)
原表见下图: 查询全部的语句: SELECT * from BD_MARK_WHEIGHT_EQUIPMENT 添加合计: SELECT * from BD_MARK_WHEIGHT_EQUIPMENT UNION SELECT '','合计','','','',to_char(sum(PLUS)),to_char(sum(REDUCE)),'',sum(plus) from BD_MAR...
Oracle 去掉联合主键中的一列
Oracle 去掉联合主键中的一列
oracle 添加一列数据从1.。。100
begin for i in 1 .. 100 loop     insert into table (field) values (i);     end loop; end; 同时,一个关于在excl表中的设计添加一行的方法 1)将最上边标题添加到数据库的字段中将数据整体拷贝进去直接上sql 语句 create table test1 as select *
oracle 给新增字段加中文备注
alter table  t_product_code   add standard_rate   varchar2(10);   comment on column   t_product_code.standard_rate  is '物资标准化率';
oracle 查询时产生序号
例子1: select dense_rank() over(order by d.auditingdate) num, d.auditingdate, d.quesuser, d.quescontent, decode(d.questype, 1, '系统Bug', 2, '新增', 3, '修改', 4, '咨询', 5, '其它') typefrom debugrecord dwhere t...
Mysql、oracle、Sybase数据库两列合并成一列的sql语句
Mysql、oracle、Sybase数据库两列合并成一列的sql语句
ORACLE中每个分组后加个合计,最后总合计的GROUP BY rollup,和中文排序
参考代码如下 SELECT LOCAL_NAME , DEPT_DISTINGUISH_NAME , SUM(TOTAL_PAY_SUM_R_LDC) TOTAL_PAY_SUM_R_LDC , SUM(BASE_PAY_R_LDC) BASE_PAY_R_LDC FROM PA_SUMMARY_B04 WHERE PA_MONTH='201509' GROU
给oracle数据库某一列数据的前面或者后面增加字符
1.给某列前面增加字符: UPDATE 表名 SET 列名='要添加的字符'||列名 2.给某列后面增加字符: UPDATE 表名 SET 列名=列名||'要添加的字符'
Oracle使用row_number()函数查询时增加序号列
使用Oracle自带的row_number()函数能够实现自动增加序号列的要求,但是同时引发一个问题,如果我们查询出来的数据需要使用Order By排序的话,那么我们会发现新增加的序号列是乱序的,它会根据我们Order By后面的字段重新排序,那么怎么解决这一问题呢。     很简单,我们再加上根据Order By排序就可以了。     select row_number() over(ORD
Oracle 同一列的字符串值相加-列转行函数 Listagg()
Oracle函数 LISTAGG() 这是一个Oracle的列值转化为行值函数。 基础用法 LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)   用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。非常方便。 实际用例 SELECT LISTAGG(EDI_TRANS_ID,'&') WITHIN G
insert和 select 结合实现“插入某字段在数据库中的最大值+1”
本文是mysql 数据库问题一 将表一的数据导入表二:将表一的数据导入表二:将表二中的数据 插入到 表一,表一的列对应表二 select 出来的列INSERT INTO 表一 (column1, column2, column3, column4)select column1, column2, column3, column4 from 表二 问题二 表中插入数据时,某一字段取数据库中该字段
Oracle:SQL语句--对表的操作——修改列的数据类型( 即 修改字段的数据类型)
– 修改列的类型 即 修改字段类型(未验证在有数据,并且互有主外键时,是否可用) –另外注意 此处 表 不能用 别名! 语法:alter table 表名 modify (字段名(即列名) 数据类型及长度);
SQL中在查询结果中新增一列自定义的值
select *,cast('自定义的值' as 自定义的字段类型) as '列名' from 表名 --简写 select *, '自定义的值' as '列名' from 表名
oracle给已有表添加主键
1, 创建序列名 create sequence customer_id_seq INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10;--缓...
ORACLE创建表时添加列说明
使用comment on,举个例子: create table EMP ( empid NUMBER ); comment on table EMP is '员工信息'; --添加表描述 comment on column EMP.empid is '员工编号'; --添加列描述
oracle表增加新的字段
ALTER TABLE 表名 ADD 字段名 bit –增加新的字段 CREATE TABLE test1(a INT) ALTER TABLE test1 ADD b FLOAT –增加备注 –增加表名备注 COMMENT ON TABLE tablename IS value; –增加字段备注 COMMENT ON COLUMN TABLENAME.COLUMNNAM...
SQLServer查询数据加一列序号
select * from (     SELECT ROW_NUMBER() OVER (ORDER BY 单号) AS rowno,* FROM(         表名或查询语句     ) as a     where 1=1 ${if(len(daima) == 0,"","and 客户代码 like '%" + daima + "%'")} ) as b where b.ro
Oracle SQL 两列合并为一列,并且可以自定义添加一些字符
ob.case_id[/code] [img]http://dl2.iteye.com/upload/attachment/0119/4075/0f335ef1-9f9d-34e7-a205-e023bc1979ce.png[/img]
oracle为相同行记录增加序号列(row_number()函数)
 文章提取自 : http://blog.sina.com.cn/s/blog_475839a50100s2q3.html     表结构及测试数据如下: CREATE TABLE t_row_str( ID INT, col VARCHAR2(10)); INSERT INTO t_row_str VALUES(1,'a'); INSERT INTO t_row_str VALU...
在oracle中为shape字段添加索引
表名为oscline,shape字段的格式为sdo_geometry INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)  VALUES ('OSCLINE', 'shape',     MDSYS.SDO_DIM_ARRAY       (MDSYS.SDO_DIM_ELEMENT('X', -...
oracle字符串拼接,在后面追加字符串等
两种方式: 1)|| 2)concat
oracle 想让新增的列自增的方法
思路:先增加序列,再创建触发器,然后选择数据增加。 序列中设置起始值,步长,触发器中赋值 insert into table1(ztid, dddyflmc, CKID, bz, ztflag, cuser, uuser, CDATE, UDATE, dddyfzid )   select ztid, dddyflmc, 5, bz, ztflag, cuser, uuser, TO_DA...
oracle 子查询创建表,表的重命名,给表和列添加注释,显示当前用户所有表,复制已存在表结构到新表...
[color=red]通过子查询创建表[/color] 如果要创建一个同已有的表结构相同或部分相同的表,可以采用以下的语法: CREATE TABLE 表名(列名...) AS SQL查询语句; 该语法既可以复制表的结构,也可以复制表的内容,并可以为新表命名新的列名。新的列名在表名后的括号中给出,如果省略将采用原来表的列名。复制的内容由查询语句的WHERE条件决定。 [colo...
oracle表新增、删除列,改名
表名course 新增一个列:alter table course add(column名 类型)alter table course add(course_score number)删除一个列:alter table course drop column column名alter table course drop column course_score修改表名:alter table cour...
oracle数据库字段值自动加1
往数据库中添加数据时,字段值自动加1: 1、创建表 2、创建序列 3、创建触发器