【发布时间】:2017-09-15 20:26:13
【问题描述】:
我在 MYSQL 中遇到了CASE 语句的问题。它总是给我 1。
这是我的两张桌子:
CREATE TABLE A (
a VARCHAR(200),
b VARCHAR(200),
c VARCHAR(200),
PRIMARY KEY (a)
);
CREATE TABLE B (
a VARCHAR(200),
d VARCHAR(200),
e VARCHAR(200)
FOREIGN KEY (a) REFERENCES A(a)
);
所以我在 A 和 B 上做一个简单的连接,如下所示:
CREATE VIEW C AS (
SELECT
a,
b,
CASE
WHEN '0' THEN '0'
WHEN '1' THEN '1'
WHEN 'WEEKDAY' THEN '0'
WHEN 'WEEKEND' THEN '1'
ELSE ''
END AS c,
d,
e
FROM
B
RIGHT OUTER JOIN A ON
B.a = A.a
);
当我试图在这个视图上获取我的数据时,c 始终是1。即使在原始表B 中,它也设置为1 或WEEKDAY。
为什么我的CASE WHEN THEN 语句没有按预期工作,我错过了什么?
【问题讨论】:
-
CASE 比较哪一列?
-
看documentation的第一行就行了。