数据表table的形式如下
ID A B C D E
1 10 null 10 null null
2 null 20 20 20 null
3 null 20 null 30 40
.
.
.
当我用select *from table where ID =1
这样的话就把所有的列都列出来
我现在上怎么用一个语句 当我查询到某一行的时候把是NULL的列不显示呢?
例如 ID A C
select *from table where ID =1 结果要是1 10 10
B C D
select *from table where ID =2 结果要是2 20 20 20
ID A B C D E
1 10 null 10 null null
2 null 20 20 20 null
3 null 20 null 30 40
.
.
.
当我用select *from table where ID =1
这样的话就把所有的列都列出来
我现在上怎么用一个语句 当我查询到某一行的时候把是NULL的列不显示呢?
例如 ID A C
select *from table where ID =1 结果要是1 10 10
B C D
select *from table where ID =2 结果要是2 20 20 20
解决方案 »
- delphi 怎么填写网页的生日选择表
- javascript有一个encodeURI函数, 用Delphi如何实现?
- 寻求用Indytcpserver和indytcpclient传送多个文件的解决方案!
- 一个摄像头的问题
- 送100分,如何在代理服务器下用NMHTTP控件提交数据
- 如何合并两个pardox表中的数据记录?
- 请教在DELPHI中有哪几种报表的显示方法?如果想用EXCEL来进行报表显示,能否将整个EXCEL嵌入到窗体的OLE容器中?
- 为什么总没有人送分给我?
- 怎样在程序运行时在panel上创建一个label?
- 请问如何得到一个图片的尺寸和大小?
- 请问如何在dbgrid中动态添加字段
- 关于字体背景。。。。待牛人解决
from (select id,
decode(rownum, 1, A, 2, B, 3, C, 4, D, 5, E) ex,
decode(rownum, 1, 'A', 2, 'B', 3, 'C', 4, 'D', 5, 'E') col
from (select 1 id, 10 A, null B, 10 C, null D, null E from dual)
connect by rownum <= 5)
where ex is not null;
可以换成
select *from table where ID =1
例如当我读取ID=1这一行的时候 在这行的显示的内中中ABCDE这5列上如果那一列的内容是NULL的话就不显示
所以ID=1的结果要10,10
如果是ID=2的结果要 20,20,20
1 10 10
2 20 20 20
3 20 30 40
/*
CREATE TABLE [TNULL] (
[A] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[B] [int] NULL ,
[C] [int] NULL ,
[D] [int] NULL
) ON [PRIMARY]
--GOinsert into tnull
select '1',null,10,10 union all
select '2',20,null,20 union all
select '3',null,null,30
*/
select * from tnull
/*
1 NULL 10 10
2 20 NULL 20
3 NULL NULL 30
*/
select A,
(case isnull(B,0) when 0 then '' else CAST(B AS varchar(12)) end) as B,
(case isnull(C,0) when 0 then '' else CAST(C AS varchar(12)) end) as C,
(case isnull(D,0) when 0 then '' else CAST(D AS varchar(12)) end) as D
from tnull
/*
1 10 10
2 20 20
3 30
*/