若有两个人 第一个人有10个字段信息,第二个人有5个字段信息,我如何根据显示这两个人的信息,他们的信息是第二个人所拥有的字段信息呢?
注意:他们的字段是可以添加的,没跟人拥有的字段个数随时会改变。
比如:第一个人的字段信息是:
Name Alias Age Email Dept Birth Sex Role State Re
aa qq 22 --- 1 1989 女 1 1 123
第二个人的字段信息是:
Name Alias Age Email Dept
bb bb 23 1988 2
如何得到Name Alias Age Email Dept
aa qq 22 --- 1
bb bb 23 1988 2
因为字段信息可以随时添加随意不能写select Name,Alias, Age, Email, Dept from 表名
求助?很急 。
注意:他们的字段是可以添加的,没跟人拥有的字段个数随时会改变。
比如:第一个人的字段信息是:
Name Alias Age Email Dept Birth Sex Role State Re
aa qq 22 --- 1 1989 女 1 1 123
第二个人的字段信息是:
Name Alias Age Email Dept
bb bb 23 1988 2
如何得到Name Alias Age Email Dept
aa qq 22 --- 1
bb bb 23 1988 2
因为字段信息可以随时添加随意不能写select Name,Alias, Age, Email, Dept from 表名
求助?很急 。
where table_name = '表名'
create table t1 (id int primary key identity(1,1),age int,name nvarchar(20))
create table t2 (id int primary key identity(1,1),age int)
insert into t1 select 19,'name1'
insert into t2 select 20/*插入t2表的字段数据到临时表@tmptable*/
set nocount on
declare @tmptable table (id int primary key identity(1,1),fieldname nvarchar(50))
insert into @tmptable select [name] from syscolumns where id in
(select id from sysobjects where xtype='u' and name='t2')/*循环临时表,组合字段为字符串*/
declare @stringbuilder nvarchar(4000)
set @stringbuilder=''
declare @tmpid int
declare @tmpFieldName nvarchar(50)
declare @count int
select @count=count(1) from @tmptable
while @count>0
begin
select top 1 @tmpid=id,@tmpFieldName=fieldname from @tmptable order by id desc
set @stringbuilder = @tmpFieldName+','+@stringbuilder
delete from @tmptable where id=@tmpid
set @count=@count-1
continue
end
set nocount offif(len(@stringbuilder)>0)
set @stringbuilder = substring(@stringbuilder,1,len(@stringbuilder)-1)
--select @stringbuilder/*获取数据*/
exec ('
select '+@stringbuilder+' from t1
select '+@stringbuilder+' from t2
')/*删除测试表*/
drop table t1
drop table t2
创建一个临时表,这个临时表包含所有可能的字段,然后,将查到的数据insert至临时表,为空的字段,用null填充就好了。
string[] str2 = { "5", "6", "7", "8", "9", "10" };
var intersection = str1.Intersect(str2);