Mysql 是否使用VBA从SQL查询字符串中删除别名?
我有一个SQL查询字符串。在这个字符串中有多个不同的数据列,它们都来自同一个表。为了简单起见,这里有一个简短的示例:Mysql 是否使用VBA从SQL查询字符串中删除别名?,mysql,sql-server,vba,excel,Mysql,Sql Server,Vba,Excel,我有一个SQL查询字符串。在这个字符串中有多个不同的数据列,它们都来自同一个表。为了简单起见,这里有一个简短的示例:选择“a.”“B.”“a.”“C.”“a.”“D”。 其中,'A'是别名。我的问题是:有没有一种方法可以使用VBA获取该查询字符串,并删除别名'a'的所有实例,只返回数据列'B','C','D'? 请不要完整的代码,我喜欢起点。我喜欢自己来填补残局。它有助于学习过程。您是从表中直接选择的吗?除非您在查询中执行某些函数,否则直接从表中提取将得到列名。另一个选择是: 选择[A]作为co
选择“a.”“B.”“a.”“C.”“a.”“D”。
其中,'A'
是别名。我的问题是:有没有一种方法可以使用VBA获取该查询字符串,并删除别名'a'
的所有实例,只返回数据列'B','C','D'
?
请不要完整的代码,我喜欢起点。我喜欢自己来填补残局。它有助于学习过程。您是从表中直接选择的吗?除非您在查询中执行某些函数,否则直接从表中提取将得到列名。另一个选择是: 选择[A]作为columnName,[B]作为ColumnName2,依此类推
Range("A1").Select 'Your query worksheet
With Selection.QueryTable
queryText = .CommandText
End With
LEFT
、RIGHT
、INSTR
或RegExp
对象(如果您想学习一些有用且快速使用的RegExp
-正则表达式)。如果您需要一个示例正则表达式,请在注释中告诉我。如果你想学习VBA中的正则表达式,我做了一个练习Range("A1").Select 'Your query worksheet
With Selection.QueryTable
.CommandText = queryText
.Refresh BackgroundQuery:=False
End With
删除这些别名的目的是什么?如果有两个表具有相同的列名,您的查询将失败,因为它对于引擎从哪个表中提取哪个列来说太不明确了。别名有助于定义正确的列。您的示例SQL信息错误。单引号不用于表和列别名。另外,把你的问题和你实际使用的数据库联系起来。我想我应该说得更清楚一些。我确实知道别名很重要,在使用查询时需要别名,但我只需要
'B'、'C'、'D'
字段用于其他目的。我为这种含糊不清表示歉意。(对这个网站来说还是新的)@GordonLinoff谢谢。我对SQL不太了解。我只是用和字符串相同的格式写了一个简短的例子。我只是用简单的信替换了敏感信息。谢谢。我相信这就是我所需要的。