列名中带有空格的 Stata odbc 查询

Stata odbc query with spaces in the column names

我正在尝试通过 ODBC 从 stata 中执行 sql 查询。一些列名称中有空格。

Stata 想用下划线替换空格,这是行不通的。如果我尝试转义空格,转义引用列名,none 其中似乎有效。

在下面的示例中,列名称是 "Program Type Code"。

odbc load, exec("SELECT ReportEffectiveDate, Program_Type_Code, CWIN FROM 
McDreamIndvReport WHERE ReportEffectiveDate > '20140701' and     
ReportEffectiveDate<'20150801'") dsn("HSAReports")

其他 stata odbc 命令似乎允许您引用其中包含空格的表或列,但 exec 需要引用的字符串,并且转义引号 (\"Program Type Code\") 不起作用。

有什么建议吗?

谢谢!

Stata 变量名中的空格是非法的,因此当您从 ODBC link 中读取数据时,空格将被替换为下划线,但是如果 ODBC 源 table 则读取数据列名称中有空格,您可以在带空格的名称周围添加方括号([])。

在您的示例中,这将是:

#delimit ;
odbc load, exec("SELECT ReportEffectiveDate, [Program Type Code], CWIN 
  FROM McDreamIndvReport 
  WHERE ReportEffectiveDate > '20140701' and ReportEffectiveDate<'20150801'") 
dsn("HSAReports");