如何在SQL Server中根据大小写条件执行两个查询

时间:2018-12-19 10:56:18

标签: sql sql-server

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

IF ([PATTERN] = 1)
BEGIN
    SELECT PATTERN,COLOR,SHIFT  FROM [DEFECT_RESULTS]
END
ELSE
   SELECT MODEL,COLOR  FROM [DEFECT_RESULTS]

模式列存在,然后仍显示以下错误 错误:无效的列名“ PATTERN”。

3 个答案:

答案 0 :(得分:2)

您需要在if条件下执行查询。 SQL不知道您要指的是什么表/函数。

类似

if exists (select 1 from DEFECT_RESULTS where PATTERN = 1)
begin
  …

如果if中的任何行匹配,哪个将做DEFECT_RESULTS的真面。您可能需要更具体的条件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

单个查询有时不能返回2列,而在其他时间不能返回3列。也许您只想要两个查询:

SELECT PATTERN, COLOR, SHIFT
FROM [DEFECT_RESULTS]
WHERE PATTERN = 1;

SELECT MODEL, COLOR
FROM [DEFECT_RESULTS]
WHERE PATTERN = 0;