如何显示 mysql 不带 NULL 的查询?
How show mysql query without NULL?
如何显示 mysql 不带 NULL 的查询?
我想向我的猎物展示“LAG(title) OVER(PARTITION BY emp_no)”不为空,我只需要 titles.emp_no = “LAG(title) OVER(PARTITION BY emp_no )"
我的查询:
SELECT titles.emp_no, LAG(title) OVER(PARTITION BY emp_no)
来自标题;
子查询您当前的查询并根据滞后值进行过滤:
WITH cte AS (
SELECT emp_no, LAG(title) OVER (PARTITION BY emp_no ORDER BY <col>) lag_title
FROM titles
)
SELECT emp_no, lag_title
FROM cte
WHERE lag_title IS NOT NULL;
请注意,我在 LAG
中添加了一个 ORDER BY
子句,没有它就没有多大意义。
您可以简单地使用:
select emp_no, max(title) as title
from titles
group by emp_no
如果没有 emp_no 和 title:NOT NULL 的行,结果将包括一些 title:NULL。如果你也想消除那些(并且只显示那些至少有一个 nn-Null title:
select emp_no, max(title) as title
from titles
where title is not null
group by emp_no
使用 LAG 有什么具体原因吗?如果您想获得以前的(以特定方式排序的)标题(并且该标题是 not-null),那将是有意义的;但你没有指定订单。
@Vladyslav Nazarov 如果你愿意,你也可以使用 max(title)over(partition by emo_no order by ---only if you want or need----) 在这种情况下你可以提高性能而且你不使用 group by
如何显示 mysql 不带 NULL 的查询? 我想向我的猎物展示“LAG(title) OVER(PARTITION BY emp_no)”不为空,我只需要 titles.emp_no = “LAG(title) OVER(PARTITION BY emp_no )"
我的查询:
SELECT titles.emp_no, LAG(title) OVER(PARTITION BY emp_no)
来自标题;
子查询您当前的查询并根据滞后值进行过滤:
WITH cte AS (
SELECT emp_no, LAG(title) OVER (PARTITION BY emp_no ORDER BY <col>) lag_title
FROM titles
)
SELECT emp_no, lag_title
FROM cte
WHERE lag_title IS NOT NULL;
请注意,我在 LAG
中添加了一个 ORDER BY
子句,没有它就没有多大意义。
您可以简单地使用:
select emp_no, max(title) as title
from titles
group by emp_no
如果没有 emp_no 和 title:NOT NULL 的行,结果将包括一些 title:NULL。如果你也想消除那些(并且只显示那些至少有一个 nn-Null title:
select emp_no, max(title) as title
from titles
where title is not null
group by emp_no
使用 LAG 有什么具体原因吗?如果您想获得以前的(以特定方式排序的)标题(并且该标题是 not-null),那将是有意义的;但你没有指定订单。
@Vladyslav Nazarov 如果你愿意,你也可以使用 max(title)over(partition by emo_no order by ---only if you want or need----) 在这种情况下你可以提高性能而且你不使用 group by