如何通过使用连接列中的WHERE来消除行?

时间:2018-05-26 18:24:02

标签: sql jdbc teradata

任何想法如何通过使用连续列中的WHERE来消除行?

所以说:

SELECT company_id||department_id AS "Company Dept" FROM Department

我试图进一步缩小范围:

WHERE company_id||department_id='000159999'

但是,它没有用。想知道从串联列中过滤的任何可能的解决方案(在Teradata JDBC中)?

COMPANY_ID = 00015;部门标识= 9999 请注意,相同的功能部门可能位于不同公司代码中的不同部门ID中。这就是为什么我的理想过滤器会出于连接列的原因。

提前感谢!

1 个答案:

答案 0 :(得分:2)

为什么要将值连接在一起?只需使用:

WHERE company_id = '00015'  and department_id = '9999'

从性能角度来看,这样做更好,因为查询可以利用索引(并且统计信息更准确)。如果值确实是数字,则删除'和前导0

WHERE company_id = 15 and department_id = 9999

如果您有多个值,则需要:

WHERE (company_id = 15 and department_id = 9999) or
      (company_id = 14 and department_id = 9998) or
      . . .