如何添加where条件?
How do I add where condition?
我想根据返回结果添加条件
将现有查询用作子查询:
select * from (
<add your existing query in the screenshot here>
) t
where <add your conditions here>
我认为您应该将您的代码包含在 post 本身中。这样的图实在是太不方便了
如您所见,只需在末尾添加您的 WHERE 语句:
SELECT * FROM XXX WHERE CONDITION
您不能在范围的 FROM
子句中重复使用在 SELECT
子句中定义的别名。您需要重复表达式,或者使用子查询或 CTE。
select dayofweek_iso(timestamp(mycol)) as mynewcol
from mytable
where dayofweek_iso(timestamp(mycol)) = 1
或者:
select *
from (
select dayofweek_iso(timestamp(mycol)) as mynewcol
from mytable
) t
where mynewcol = 1
出于兴趣,自 Db2 11.5 起,如果使用 NPS(即 Netezza compatibility)模式,您可以在 WHERE 子句中引用列别名。
CREATE TABLE MYTABLE(MYCOL DATE)
SET SQL_COMPAT='NPS'
SELECT DAYOFWEEK_ISO(TIMESTAMP(MYCOL)) AS MYNEWCOL
FROM MYTABLE
WHERE MYNEWCOL = 1
不过,这最好保留给从 Netezza 迁移的用户,因为 NPS 模式也改变了其他一些东西。
我想根据返回结果添加条件
将现有查询用作子查询:
select * from (
<add your existing query in the screenshot here>
) t
where <add your conditions here>
我认为您应该将您的代码包含在 post 本身中。这样的图实在是太不方便了
如您所见,只需在末尾添加您的 WHERE 语句:
SELECT * FROM XXX WHERE CONDITION
您不能在范围的 FROM
子句中重复使用在 SELECT
子句中定义的别名。您需要重复表达式,或者使用子查询或 CTE。
select dayofweek_iso(timestamp(mycol)) as mynewcol
from mytable
where dayofweek_iso(timestamp(mycol)) = 1
或者:
select *
from (
select dayofweek_iso(timestamp(mycol)) as mynewcol
from mytable
) t
where mynewcol = 1
出于兴趣,自 Db2 11.5 起,如果使用 NPS(即 Netezza compatibility)模式,您可以在 WHERE 子句中引用列别名。
CREATE TABLE MYTABLE(MYCOL DATE)
SET SQL_COMPAT='NPS'
SELECT DAYOFWEEK_ISO(TIMESTAMP(MYCOL)) AS MYNEWCOL
FROM MYTABLE
WHERE MYNEWCOL = 1
不过,这最好保留给从 Netezza 迁移的用户,因为 NPS 模式也改变了其他一些东西。