首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inner with if语句

Inner with if语句
EN

Stack Overflow用户
提问于 2012-10-23 15:39:09
回答 4查看 9.9K关注 0票数 1

我正在尝试构建以下sp:

代码语言:javascript
复制
USE [MarMoniApp]
GO
/****** Object:  StoredProcedure [dbo].[Desc_by_date]    Script Date: 10/23/2012     09:01:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Desc_by_date]
@DateToSearch varchar(50)
AS
BEGIN
select a.ticker,a.First_T, a.Last_T, a.Size_mln, a.pct_d_vol,a.a_trad,a.coolname,a.recency,b.Analyst
from Order_Desc a

CASE
When a.coolname = 'ELTORO'
then (Inner join MarMoniApp.dbo.Namelist b on a.ticker = b.ticker )
END

where convert(datetime, cast(rtrim(First_T) AS nvarchar)) > DateToSearch 
order by  CONVERT(DATETIME, cast(rtrim(First_T) AS nvarchar) )  DESC
END

我只想在"coolname“等于eltoro的情况下进行内连接,但似乎我的语法不正确。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-23 15:43:59

创建两个select语句,然后将它们联合起来怎么样?

代码语言:javascript
复制
select ... from Order_Desc a
Inner join MarMoniApp.dbo.Namelist b on a.ticker = b.ticker
where a.coolname = 'ELTORO' AND ...

union

select ... from Order_Desc a
where a.coolname != 'ELTORO' AND ...
票数 2
EN

Stack Overflow用户

发布于 2012-10-23 18:15:34

您应该使用左外连接,如下所示:

代码语言:javascript
复制
select a.ticker,a.First_T, a.Last_T, a.Size_mln, a.pct_d_vol,a.a_trad,a.coolname,a.recency,b.Analyst
from Order_Desc a
LEFT OUTER JOIN MarMoniApp.dbo.Namelist b
on a.ticker = b.ticker
**where 
(   
    (a.coolname <> 'ELTORO')
    OR
    (a.coolname = 'ELTORO' AND a.ticker = b.ticker)
)** 
AND convert(datetime, cast(rtrim(First_T) AS nvarchar)) > DateToSearch 
order by  CONVERT(DATETIME, cast(rtrim(First_T) AS nvarchar) )  DESC
票数 2
EN

Stack Overflow用户

发布于 2012-10-23 15:46:07

你可能需要这样的东西:

代码语言:javascript
复制
INNER JOIN
 MarMoniApp.dbo.Namelist b 
ON 
 a.coolname = 'ELTORO'
 AND a.ticker = b.ticker 

基本上--您不能进行条件连接。您只能选择要联接的行。

如果只在a.coolname = 'ELTORO'的情况下才需要MarMoniApp.dbo.Namelist表中的列,请使用LEFT JOIN

另一个选项(即在性能是关键的情况下)是使用UNION ALL作为@Turcia suggested (使用NULL作为没有JOIN的part的额外列的值)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13025631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档