没有条件的 oledb xlsx 连接
oledb xlsx join without on condition
我使用 C# 通过 oledb 访问 xls 文档。我必须在没有任何条件的情况下加入两张纸。我尝试从这两张表中获得任何可能的列组合。
在 mssql 下,我可以使用 ON 1 = 1
作为连接条件,但这在这里不起作用。
以下是我已经尝试过的一些变体:
1. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
[Grid 2$] ON 1 = 1
2. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
[Grid 2$] ON TRUE
3. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] CROSS JOIN
[Grid 2$]
1号和2号掷球:
System.Data.OleDb.OleDbException (0x80040E14): JOIN expression not
supported.
第 3 次投掷:
System.Data.OleDb.OleDbException (0x80004005): Fehler
E_FAIL(0x80004005) in IErrorInfo.GetDescription.
是否有针对此问题的任何解决方案或变通方法?
为了指出我正在寻找的是一个例子:
Sheet 1:
1. foo
2. bar
Sheet 2:
1. jon skeet
2. harry potter
查询应该return:
foo jon skeet
foo harry potter
bar jon skeet
bar harry potter
我希望这指出了我的意图。
条件为 1=1 的 LEFT JOIN 毫无意义。根据您的解释,您正在进行笛卡尔连接(某些数据库上的 CROSS JOIN 和 FULL JOIN)。您可以在没有任何连接子句的情况下完成它(旧式连接 IOW):
SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$], [Grid 2$]
注意:请始终牢记 Excel 不是数据库。
我使用 C# 通过 oledb 访问 xls 文档。我必须在没有任何条件的情况下加入两张纸。我尝试从这两张表中获得任何可能的列组合。
在 mssql 下,我可以使用 ON 1 = 1
作为连接条件,但这在这里不起作用。
以下是我已经尝试过的一些变体:
1. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
[Grid 2$] ON 1 = 1
2. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] LEFT JOIN
[Grid 2$] ON TRUE
3. SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$] CROSS JOIN
[Grid 2$]
1号和2号掷球:
System.Data.OleDb.OleDbException (0x80040E14): JOIN expression not supported.
第 3 次投掷:
System.Data.OleDb.OleDbException (0x80004005): Fehler E_FAIL(0x80004005) in IErrorInfo.GetDescription.
是否有针对此问题的任何解决方案或变通方法?
为了指出我正在寻找的是一个例子:
Sheet 1:
1. foo
2. bar
Sheet 2:
1. jon skeet
2. harry potter
查询应该return:
foo jon skeet
foo harry potter
bar jon skeet
bar harry potter
我希望这指出了我的意图。
条件为 1=1 的 LEFT JOIN 毫无意义。根据您的解释,您正在进行笛卡尔连接(某些数据库上的 CROSS JOIN 和 FULL JOIN)。您可以在没有任何连接子句的情况下完成它(旧式连接 IOW):
SELECT [Grid 1$].[FOO], [Grid 2$].[BAR] FROM [Grid 1$], [Grid 2$]
注意:请始终牢记 Excel 不是数据库。