如何在不使用Select NULL的情况下跳过或忽略列?
问题描述:
我必须声明我以前问过这个问题,但是我发现了一些导致误导的措辞错误。因此,我决定删除旧问题并再次提出问题。如何在不使用Select NULL的情况下跳过或忽略列?
这里是我的SQL:
Select officer , NULL ,NULL, salary from table
,因为我用ADO运行在Excel中的SQL,第二和第三列是需要输入数据运行SQL查询之前。
但我使用NULL来跳过2列.SQL查询将清除并重置我的数据或存储在列2和3中的Excel公式,因为我选择NULL这2列。
因此,如何在不影响这两列数据或公式的情况下跳过这两列?
可视化:
-
官,第2列,第3列,薪水
-
_,2,=总和(B2 * C2),_
SQL查询运行:Select officer , NULL ,NULL, salary from table
-
官,第2列(NULL),第3列(NULL),工资
-
988,___,___,$ 4789// SQL查询清除存储在第2列中的原始数据3
(___表示空白)
如何解决这个问题?
答
如果我正确理解你,你现在直接将查询数据插入到工作表中?
如果是这样,我建议使用记录集来保存查询结果。然后循环通过它。这样您可以决定要在哪些单元格中放置数据。
一个出发点可能是这个(根据自己的需要修改):
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "YOUR.PROVIDER"
.ConnectionString = "YOUR_CONNECTION_STRING"
.Open
End With
strQuery = "SELECT officer, salary FROM table"
Set rs = cn.Execute(strQuery)
Do While Not rs.EOF
For i = 0 To rs.Fields.Count
' Insert data to your worksheet here
' rs.Fields(0).Value holds the value for officer
' rs.Fields(1).Value holds the value for salary
Next
rs.MoveNext
Loop
rs.Close
你为什么不跑从表ORDER两个查询像'选择官BY xxx'和'选择从表ORDER BY工资xxx',其中ORDER似乎需要确保您获得匹配的数据集 –
另一种方法是通过循环Recordset而不是'.CopyFromRecordset'来将数据加载到excel。 Loop将仅适用于第1,第4和第5场... –
@ KazimierzJawor现在我已经建立了一个sql语句'mrs.Open sSQLSting,Conn sheet6.Range(“A5”)。CopyFromRecordset mrs'但是这个sql语句跨单元格,不需要放置 – Vito