【问题标题】:Netezza SQL query searching a concatenated value搜索连接值的 Netezza SQL 查询
【发布时间】:2017-08-18 15:23:27
【问题描述】:

我正在使用 Aginity 工作台来查询 netezza 数据库并尝试创建简单的查询。基本上,在一个表中,我想将两列组合起来创建一个 ID(它们确实构成了实际唯一 ID 的两个部分)。在查询中,我想搜索唯一 ID,例如IDRef 值。因此,在下面的示例中,我想返回表中 X 列等于 282,Z 等于 55 的所有行。下面的代码没有返回任何内容。

SELECT T_ROUTE || CSC as IDRef, *
FROM HUB_DATABASE 
WHERE POSTCODE like 'A%'
AND CURRENT_RECORD_FLAG = '1'
AND IDRef = 28255
LIMIT 100 
;

所以下面的代码以相同的方式工作正常,但只是尝试使用更智能的方法来执行此操作,当然也可以进一步提高我的 sql 知识。

SELECT * FROM HUB_DATABASE
WHERE T_ROUTE = '282'
AND CSC = '55'
AND POSTCODE like 'A%'
AND CURRENT_RECORD_FLAG = 1
LIMIT 100;

【问题讨论】:

    标签: sql netezza aginity


    【解决方案1】:

    使用子查询。您不能在定义它的同一级别引用列别名:

    SELECT hb.*
    FROM (SELECT T_ROUTE || CSC as IDRef, hd.*
          FROM HUB_DATABASE hd
          WHERE POSTCODE like 'A%' AND
                CURRENT_RECORD_FLAG = '1'
         ) hb
    WHERE IDRef = 28255
    LIMIT 100 ;
    

    如果IDRef 已在HUB_DATABASE 中定义,您将收到错误消息。如果是这样,您需要使用不同的名称或从子查询中删除该列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2016-10-12
      相关资源
      最近更新 更多