问一个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
*/