我如何在我的行中找到相同的值并将其放入CASE

时间:2017-06-26 15:20:20

标签: mysql

嗨,你能帮我们在我的SQL CASE声明中,或者我将如何操纵数据。我试图找到我的行值的相同值..如果它们相同,则在我的数据库中给出一个值为1的临时列。 恩。这是我的表

  id     company
------|-----------
   1  |  Inzpect
   2  |  Meralco
   3  |  Ginebra
   4  |  Inzpect

我的sql是

SELECT company, (CASE WHEN company = 'Inzpect' THEN 1 ELSE 0 END) AS external_customer FROM tbl_reports

结果是

 company   external
---------|-----------
Inzpect  |     1
Meralco  |     0
Ginebra  |     0
Inzpect  |     1

但我如何操纵我将不再使用' Inzpect' CASE中的字符串,并将其更改为另一个语句,该语句将自动查找相同的行值而无需手动设置值。

CASE WHEN company = 'Inzpect'

1 个答案:

答案 0 :(得分:1)

这就是你想要的:

SELECT
    t1.company,
    CASE WHEN t2.company IS NOT NULL THEN 1 ELSE 0 AS external
FROM tbl_reports t1
LEFT JOIN
(
    SELECT company
    FROM tbl_reports
    GROUP BY company
    HAVING COUNT(*) > 1
) t2
    ON t1.company = t2.company