使用SQL Server查询将Excel作为数据库

时间:2018-08-30 14:48:25

标签: sql excel

我正在尝试使用Excel工作簿作为数据源运行以下查询,但是我不明白为什么COALESCE函数不起作用。查询是否有问题或COALESCE函数不适用于Excel?

SELECT COALESCE([net value], 0) 
FROM   [sheet1$a1:e6] 
WHERE  [units] = 'UN03' 
UNION ALL 
SELECT COALESCE([net value], 0) 
FROM   [sheet1$a1:e6] 
WHERE  [units] = 'UN06' 
UNION ALL 
SELECT COALESCE([net value], 0) 
FROM   [sheet1$a1:e6] 
WHERE  [units] = 'UN04' 
UNION ALL 
SELECT COALESCE([net value], 0) 
FROM   [sheet1$a1:e6] 
WHERE  [units] = 'UN02' 
UNION ALL 
SELECT COALESCE([net value], 0) 
FROM   [sheet1$a1:e6] 
WHERE  [units] = 'UN01' 

似乎唯一可行的方法是下面的查询,但是我无法返回输出,因为IFF函数仅接受单引号内的值,例如'true','false'。我正在尝试返回这些值sheet1$net value,'0',sheet1$net value包含查询输出,0表示查询未完成。不退还任何东西。谁能告诉我我在做什么错?

SELECT IIF(Count(`sheet1$`.`net value`) > 0, `sheet1$`.`net value`, '0') AS 
'Net Value' 
FROM   `sheet1$` `Sheet1$` 
WHERE  ( `sheet1$`.f1 = 'UN03' ) 

enter image description here

1 个答案:

答案 0 :(得分:0)

您应该像编写MS Access一样编写查询。请参考此内容,其中有许多替代方法可解决您的问题:

coalesce alternative in Access SQL