【问题标题】:Problems with reserved field name 'user' in SAS Proc SQLSAS Proc SQL 中保留字段名称“用户”的问题
【发布时间】:2020-03-03 21:02:26
【问题描述】:

如何从我的表中选择 user 列,而不是选择添加到其 SQL 语法中的意外“功能”SAS:

data have;
 user = 'huh??';
run;

proc sql ;
  select user from have;
quit;

结果:

rob

奖励,结果表中的字段名称(如果您创建一个)获得一个临时名称......即。类似_TEM001

【问题讨论】:

  • 请注意,“用户”是 SQL documentation.sas.com/… 中的保留字(就在第一节下方)
  • 啊哈-忘记了这些临时名称:-)

标签: sql sas


【解决方案1】:

使用名称文字语法,'<name>'n

select 'user'n from have;

其他系统中的名称字面量,例如在直通中:

  • Oracle - 双引号。 "user"
  • SQL Server - 方括号[user]

【讨论】:

    【解决方案2】:

    您可以使用列文字来专门引用字段名称而不是保留关键字:

    proc sql ;
      select 'user'n from have;
    quit;
    

    结果:

    huh??
    

    【讨论】:

    • 它说双引号(不带n)应该也可以吗?
    • 仅当“PROC SQL 选项 DQUOTE=ANSI”有效时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多