首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sql server中执行基于case条件的两个查询

问如何在sql server中执行基于case条件的两个查询
EN

Stack Overflow用户
提问于 2018-12-19 18:56:18
回答 3查看 1.8K关注 0票数 0

我试图在单个表中执行基于条件的查询,这是我在sql server中的查询。其中PATTERN是列名,默认值设置为0,我只想将结果显示到excel表格的一个单元格中。我链接了SQL server和Excel工作表。

代码语言:javascript
复制
IF ([PATTERN] = 1)
BEGIN
    SELECT PATTERN,COLOR,SHIFT  FROM [DEFECT_RESULTS]
END
ELSE
   SELECT MODEL,COLOR  FROM [DEFECT_RESULTS]

pattern列存在,但以下错误仍在显示错误:列名称'PATTERN‘无效。

EN

回答 3

Stack Overflow用户

发布于 2018-12-19 19:01:20

您需要在if条件中执行查询。SQL不知道您引用的是哪个表/函数。

就像这样

代码语言:javascript
复制
if exists (select 1 from DEFECT_RESULTS where PATTERN = 1)
begin
  …

如果DEFECT_RESULTS中有任何行匹配,它将执行if的真实部分。您可能需要更具体的条件。

票数 2
EN

Stack Overflow用户

发布于 2018-12-19 18:59:57

代码语言:javascript
复制
declare @pattern int
if (@pattern=1)
begin
SELECT PATTERN,COLOR,SHIFT  FROM [DEFECT_RESULTS]
end
else if(@pattern=0) 
begin
SELECT MODEL,COLOR  FROM [DEFECT_RESULTS]
end
票数 0
EN

Stack Overflow用户

发布于 2018-12-19 19:47:52

单个查询有时不能返回2列,有时不能返回3列。也许您只需要两个查询:

代码语言:javascript
复制
SELECT PATTERN, COLOR, SHIFT
FROM [DEFECT_RESULTS]
WHERE PATTERN = 1;

SELECT MODEL, COLOR
FROM [DEFECT_RESULTS]
WHERE PATTERN = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53849764

复制
相关文章

相似问题

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