这个是我的代码 SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id
--如果你确定你一定要用full join SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id where 夹具id is not null
select COALESCE(夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称) from(SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id)t
vfp9.0: 表中任何字段有null值。 use tt lnfield=fcount() scan scatt to laarray(lnfield) for i=1 to lnfield if isnull(laarray(lnfield)) dele endif endfor endscan
select isnull(FieldName, '') FieldName from TableName
这个怎么使用?SELECT isnull(夹具id,'') 夹具id from TableName ?
declare @lnfield int set @lnfield=表中字段总数 sql中的表扫描循环? 将表的每个记录的每个字段赋值给一个数组。 循环这个数组,查是否null,是,这删除。不知道用mssqlsever这么写? 如果delete from tt where (sele 任何字段 is null from tt)改如何写?
select isnull(ltrim(夹具id),''),isnull(夹具项目名称,''),isnull(ltrim(检具id),''),isnull(检具项目名称,''),isnull(ltrim(模具id),''),insull(模具项目名称,'')FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id
楼主是不是要isnull(字段,你要设成的字) 如 select isnull(夹具id,0) as 夹具id,isnull(夹具项目名称,'') as 夹具项目名称 ... from ..
isnull(字段,'') 如果字段为空或null 都会显示''
每个字段都ISNULL函数处理下
楼主是想要所有字段的所有行里只有NULL 的都显示''空字段符串吗
create table tb3(c2 int,v3 varchar(20)) create table tb2(c2 int,v2 varchar(20)) create table tb1(c1 int,v1 varchar(20)) insert tb3 values (32,'de3') insert tb2 values (2,'32sd') insert tb2 values (432,'4323') insert tb1 values (21,'4323') insert tb1 values (2,'de3') ------以上創建表 declare @a1 int,@a2 int,@a3 int,@maxv int select @a1=COUNT(*) from tb1 select @a2=COUNT(*) from tb2 select @a3=COUNT(*) from tb3 select @maxv=MAX(maxvalue) from (select @a1 'maxvalue' union select @a2 union select @a3) a -----以上求得最多的記錄是哪個表,再採取左連接 -----當第一個表的記錄數為最多大。進行下以連接 。如果第二表記錄是最多了,剛你只需要換一下就OK 了。 if @a1=@maxv begin select * from ( select *,(select COUNT(*) from tb1 where c1<=t1.c1) 'lev1' from tb1 t1 ) a1 left join ( select *,(select COUNT(*) from tb2 where c2<=t2.c2) 'lev2' from tb2 t2 ) a2 on a1.lev1=a2.lev2 left join ( select *,(select COUNT(*) from tb3 where c2<=t3.c2) 'lev3' from tb3 t3 ) a3 on a1.lev1=a3.lev3 end以下為結果,如果你需要將空值去掉。請用 isnull()函數。c1 v1 lev1 c2 v2 lev2 c2 v3 lev3 13 H3 1 3 56 1 32 de3 1 16 H7 2 42 r5 2 NULL NULL NULL
... where 夹具id is not null
SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id
--如果你确定你一定要用full join
SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id
where 夹具id is not null
from(SELECT 夹具id,夹具项目名称,检具id,检具项目名称,模具id,模具项目名称FROM dbo.夹具项目视图 full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id)t
我就只想把查询结果里面的NULL清除掉,显示出来的样子还是像我的那张图片的样子,就是没有NULL的值!
表中任何字段有null值。
use tt
lnfield=fcount()
scan
scatt to laarray(lnfield)
for i=1 to lnfield
if isnull(laarray(lnfield))
dele
endif
endfor
endscan
select isnull(FieldName, '') FieldName from TableName
这个怎么使用?SELECT isnull(夹具id,'') 夹具id from TableName ?
set @lnfield=表中字段总数
sql中的表扫描循环?
将表的每个记录的每个字段赋值给一个数组。
循环这个数组,查是否null,是,这删除。不知道用mssqlsever这么写?
如果delete from tt where (sele 任何字段 is null from tt)改如何写?
isnull(ltrim(夹具id),''),isnull(夹具项目名称,''),isnull(ltrim(检具id),''),isnull(检具项目名称,''),isnull(ltrim(模具id),''),insull(模具项目名称,'')FROM
dbo.夹具项目视图
full OUTER JOIN dbo.检具项目视图 on 夹具项目视图.夹具id=检具项目视图.检具id full OUTER JOIN dbo.模具项目视图 on 夹具项目视图.夹具id=模具项目视图.模具id
select isnull(夹具id,0) as 夹具id,isnull(夹具项目名称,'') as 夹具项目名称 ... from ..
create table tb2(c2 int,v2 varchar(20))
create table tb1(c1 int,v1 varchar(20))
insert tb3 values
(32,'de3')
insert tb2 values
(2,'32sd')
insert tb2 values
(432,'4323')
insert tb1 values
(21,'4323')
insert tb1 values
(2,'de3')
------以上創建表
declare @a1 int,@a2 int,@a3 int,@maxv int
select @a1=COUNT(*) from tb1
select @a2=COUNT(*) from tb2
select @a3=COUNT(*) from tb3
select @maxv=MAX(maxvalue) from (select @a1 'maxvalue' union select @a2 union select @a3) a
-----以上求得最多的記錄是哪個表,再採取左連接
-----當第一個表的記錄數為最多大。進行下以連接 。如果第二表記錄是最多了,剛你只需要換一下就OK 了。
if @a1=@maxv
begin
select * from
(
select *,(select COUNT(*) from tb1 where c1<=t1.c1) 'lev1' from tb1 t1
) a1
left join
(
select *,(select COUNT(*) from tb2 where c2<=t2.c2) 'lev2' from tb2 t2
) a2
on a1.lev1=a2.lev2
left join
(
select *,(select COUNT(*) from tb3 where c2<=t3.c2) 'lev3' from tb3 t3
) a3
on a1.lev1=a3.lev3
end以下為結果,如果你需要將空值去掉。請用 isnull()函數。c1 v1 lev1 c2 v2 lev2 c2 v3 lev3
13 H3 1 3 56 1 32 de3 1
16 H7 2 42 r5 2 NULL NULL NULL
c1 v1 lev1 c2 v2 lev2 c2 v3 lev3
13 H3 3 42 r5 3 NULL NULL NULL
16 H7 4 432 4323 4 NULL NULL NULL
21 4323 5 NULL NULL NULL NULL NULL NULL
2 de3 2 3 56 2 32 de3 2
2 de3 2 3 56 2 32 de3 2
2 de3 2 3 56 2 32 de3 2
2 de3 2 3 56 2 32 de3 2