首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server Management Studio 2016中有关JOIN和WITH的语法问题

SQL Server Management Studio 2016中有关JOIN和WITH的语法问题
EN

Stack Overflow用户
提问于 2017-03-11 03:01:38
回答 2查看 79关注 0票数 0

我是T-SQL的新手,所以请耐心听我说。

我正在尝试遵循以下说明:

执行以下操作

代码语言:javascript
复制
Join Indivs16000 to Cmtes16 on Indivs16000.CmteID = Cmtes16.CmteID 
with  Indivs16000.RecipCode not like P*  

如果您希望将个人贡献包括在领导力PAC中,请不要排除基于Recipcode。相反,应限制为Indivs.Party不为空且Indivs.Party<>“”(不等于空)。

我想把个人的贡献包括在领导力PACS中。为了遵循这些说明,我编写了以下查询:

代码语言:javascript
复制
JOIN Indivs16000 to Cmtes16
ON Indivs16000.CmteID = Cmtes16.CmteID
WITH Indivs16000.Party NOT NULL
AND Indivs16000.Party<>

在执行时,我遇到了以下错误:

代码语言:javascript
复制
Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'Join'.
Msg 319, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

哪里出了问题?我正在使用Microsoft SQL Server 2016 (Management Studio)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-11 03:05:29

正如肖恩·兰格指出的那样,i.Party<>''i.Party > ''消除了检查i.Party是否是null的需要。

您可以在select中选择要返回哪些列,以及这些列应该来自哪个表。

对表名使用别名使其更具可读性,并使您不必浪费一些finite number of keystrokes

代码语言:javascript
复制
select 
    i.*
  , c.col1
  , c.col2
from Indivs16000 as i
  inner join Cmtes16 as c
    on i.CmteID = c.CmteID
where i.Party<>''
  --and i.Party is not null /* not needed with i.Party <>'' */
票数 3
EN

Stack Overflow用户

发布于 2017-03-11 03:05:21

代码语言:javascript
复制
SELECT * 
FROM 
Indivs16000 as A
INNER JOIN 
Cmtes16 as B
ON A.CmteID = B.CmteID
WHERE AND A.Party != '' and A.Party is not null
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42725884

复制
相关文章

相似问题

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