Excel 等价于 T-SQL EXISTS

Posted

技术标签:

【中文标题】Excel 等价于 T-SQL EXISTS【英文标题】:Excel equivalent of T-SQL EXISTS 【发布时间】:2017-02-01 15:07:28 【问题描述】:

在 T-SQL 中,可以很容易地找到与语句的 EXISTS 子句匹配的行。

假设您有一个包含开始日期和结束日期的行的表,您可以很容易地找到某个日期位于该表中行的开始日期和结束日期之间的行。

Select * from sometable s where exists (select * from anothertable a where s.somedate between a.startdate and a.enddate)

我需要此功能或 Excel 中的解决方法。我需要在 Excel 文件中显示计算,因此我不认为它是一种将数据移动到 SQL 并为此使用 T-SQL 然后将结果粘贴回 Excel 中的选项。

有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以使用 ADO 查询 Excel 电子表格。

在 VBA 中创建 ADODB 连接

objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Test.xls; Extended Properties=""Excel 8.0;HDR=Yes;"";" 

并运行查询:

objRecordset.Open "Select * FROM [Sheet1$] WHERE [F1] IN (SELECT [F2] FROM [Sheet1$])", objConn

注意:未经测试的代码,记忆中的想法。

【讨论】:

以上是关于Excel 等价于 T-SQL EXISTS的主要内容,如果未能解决你的问题,请参考以下文章

HANA Sqlscript 中的 T-SQL ISNUMERIC 函数等价物是啥?

=rand() 的 T-SQL 等价物

查询等价评估

6.2 小表驱动大表(exists的应用)

Tableau 的函数 - 如何找到 IF EXISTS 的等价物

SQL优化案例之where exists(col1=xxx or col2=xxx)等价改写