rad*_*dek 0 mysql sql select case where-clause
我有以下代码:
SELECT
t1.a
t1.b
CASE WHEN t1.c = Z THEN m
WHEN t1.c = Y THEN n
ELSE p END as m_or_n_or_p
FROM t1
Run Code Online (Sandbox Code Playgroud)
我可以添加吗
WHERE m_or_n_or_p = m
Run Code Online (Sandbox Code Playgroud)
最后以这种方式过滤我的查询还是我必须将其全部包装在另一个 SELECT 中?
MySQL 不允许在where子句中使用别名。如果您不想将查询包装在附加查询中,您始终可以将表达式从选择列表复制到where子句:
SELECT t1.a
t1.b
CASE WHEN t1.c = Z THEN m
WHEN t1.c = Y THEN n
ELSE p
END as m_or_n_or_p
FROM t1
WHERE CASE WHEN t1.c = Z THEN m
WHEN t1.c = Y THEN n
ELSE p
END = m
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2234 次 |
| 最近记录: |