日期:2014-05-20  浏览次数:20565 次

问一个sql语句
传进去的参数
select   selName,a,b,c,d
from   table
....//join其它表和其它sql语句
where   selName   in( 'test1 ', 'test2 ',test3, 'test4 ', 'test5 ')
最后结果是  
test1   1   2   3   4
test2   5   3   6   4
test3   8   4   5   9
但是现在我想要把test4,test5也放到结果中,数据是0,即
test1   1   2   3   4
test2   5   3   6   4
test3   8   4   5   9
test4   0   0   0   0
test5   0   0   0   0
应该要用到union吧。
不知道如何写?谢谢。

------解决方案--------------------
where selName = 'test1 ' or selName = 'test2 ' or selName = 'test3 ' or selName = 'test4 ' or selName = 'test5 '

可以不哇?
------解决方案--------------------
select selName,a,b,c,d
from table
....//join其它表和其它sql语句
where selName in( 'test1 ', 'test2 ',test3, 'test4 ', 'test5 ')
UNION
select selName= 'test4 ', a=0, b=0, c=0, d=0
UNION
select selName= 'test5 ', a=0, b=0, c=0, d=0
------解决方案--------------------
嘿嘿;抱歉;楼上星的可以吧~
------解决方案--------------------
難道不行,用join和left join的效果是不一樣的。

給你個例子看下吧。

Create Table A(ID Int, Name Varchar(10))
Insert A Select 1, 'A '
Union All Select 2, 'B '
Union All Select 3, 'C '

Create Table B(ID Int, Address Varchar(50))
Insert B Select 1, 'AAAAAAA '
Union All Select 2, 'BBBBBB '
GO
Select A.ID, A.Name, B.Address From A Join B On A.ID = B.ID

Select A.ID, A.Name, B.Address From A Left Join B On A.ID = B.ID
GO
Drop Table A, B
--Result
/*
ID Name Address
1 A AAAAAAA
2 B BBBBBB

ID Name Address
1 A AAAAAAA
2 B BBBBBB
3 C NULL
*/