有一个表 列A,B,C,D
比如:
A B C D
1234 1 1 1
abcd 2 2 2
12ab 3 3 3
12cd 4 4 4当我查询 WHERE A IN('1234','abcd','1212')
能得到以下的结果
1234 1 1 1
abcd 2 2 2
1212 NULL NULL NULL按我现在的方法只能得到前面有数据的两行,最后一行没有数据的是不会显示的,有什么方法可以显示吗?
比如:
A B C D
1234 1 1 1
abcd 2 2 2
12ab 3 3 3
12cd 4 4 4当我查询 WHERE A IN('1234','abcd','1212')
能得到以下的结果
1234 1 1 1
abcd 2 2 2
1212 NULL NULL NULL按我现在的方法只能得到前面有数据的两行,最后一行没有数据的是不会显示的,有什么方法可以显示吗?
go
create table [TB] (A nvarchar(8),B int,C int,D int)
insert into [TB]
select '1234',1,1,1 union all
select 'abcd',2,2,2 union all
select '12ab',3,3,3 union all
select '12cd',4,4,4select * from [TB]DECLARE @i TABLE (NN NVARCHAR(8)) --做个表变量或者临时表处理一下参数即可
INSERT INTO @i(nn)
SELECT '1234' UNION ALL SELECT 'abcd' UNION ALL SELECT '1212'
SELECT A.nn AS A ,b.b,b.c,b.d
FROM @i A
LEFT JOIN TB B ON A.nn = B.a/*
A b c d
1234 1 1 1
abcd 2 2 2
1212 NULL NULL NULL*/
WHERE A IN('1234','abcd','1212')
UNION ALL SELECT '1212',NULL,NULL,NULL from tb