我必须在SQL中执行请求。我有论文表CASE加入SQL Server
我愿意做这个请求,但请求从来没有给我的结果:
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On Case
When CDR.CDR_LOC_CODE Like 'CH%' And CDR.CDR_TYPE Like 'I%' And
CDR.CDR_LOC_CODE = p1.Loc_Code Then 1
When CDR.CDR_LOC_CODE Like 'CCN%' And CDR.CDR_TYPE Like 'I' And
CDR.CDR_LAST_REDIR_NO = p1.Post_type Then 1 Else 0 End = 1
我也试过
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On CDR.CDR_LOC_CODE = p1.Loc_Code
Where CDR.CDR_LOC_CODE Like 'CH%' And CDR.CDR_TYPE Like 'I%'
Union All
Select CDR.*,
p1.*
From dbo.T_CDR_APPEL CDR
Inner Join dbo.POS As p1 On CDR.CDR_LAST_REDIR_NO = p1.Post_type
Where CDR.CDR_LOC_CODE Like 'CCN%' And CDR.CDR_TYPE Like 'I'
但相同的结果,该请求似乎正在工作,但不成功。
感谢您的帮助!
更新:它现在与联盟工作! Thnak为您提供帮助!
当你可以用简单的'AND' /'OR'来做同样的事情时,你不应该使用'CASE'。但是,要找出您的情况失败的地方,请一步一步来。例如:'从dbo.t_cdr_appel中选择cdr_loc_code如'CH%'和cdr_type'I%''并查看是否有任何记录。如果是这样,你会得到什么CDR_LOC_CODE?它们存在于dbo.POS中吗? –
CDR_LOC_CODE存在于dbo.POS中! – Alexandre
所以我的查询返回记录?并且它返回与Pos.Loc_Code相匹配的CDR_LOC_CODE?那很奇怪你的查询没有得到那些匹配。那时必须是一个错字。 –