如何参考“决策者”?在以下 mysql 查询的 where 子句中?

发布于 2024-11-11 01:37:24 字数 312 浏览 6 评论 0原文

如何从以下 mysql 查询中引用 where 子句中的“decider”?

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
       END as decider
  FROM t1,
       t2 
 WHERE cond12
   AND decider <> NULL

我尝试了一下,得到了 1054: Unknown column in where Clause 错误。

How to refer 'decider' in the where clause from the following mysql query?

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
       END as decider
  FROM t1,
       t2 
 WHERE cond12
   AND decider <> NULL

I tried it, and I got a 1054: Unknown column in where clause error.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

守护在此方 2024-11-18 01:37:24

使用:

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
         ELSE NULL
       END as decider
  FROM t1,
       t2 
 WHERE cond12
HAVING decider IS NOT NULL
  1. MySQL最早允许使用列别名是GROUP BY子句,
  2. 需要使用IS NULLIS NOT NULL(在适当的情况下) ) 因为 NULL 不是一个值——它是缺少任何值的占位符,这需要在 SQL 中进行特殊处理

Use:

SELECT *, 
       CASE
         WHEN (cond1) THEN 1
         WHEN (cond2) THEN 2
         ELSE NULL
       END as decider
  FROM t1,
       t2 
 WHERE cond12
HAVING decider IS NOT NULL
  1. The earliest MySQL allows you to use column aliases is the GROUP BY clause
  2. You need to use IS NULL or IS NOT NULL (where appropriate) because NULL is not a value -- it's a placeholder for the lack of any value, which requires special handling in SQL
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文