我正在尝试根据单个表中的条件执行查询,这是我在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”。
答案 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;