SQL(mysql)查询世界数据库。

问题描述 投票:0回答:1

请协助

下面的查询不工作

        ALTER TABLE person 
        ADD COLUMN Stay_Length VARCHAR(50);

    ALTER TABLE person 
    ADD COLUMN Time_the_person_stayed_in_the_city VARCHAR(50);

        INSERT INTO Person (Stay_Length)
        VALUES ('Short'), ('Long'),('Very Long');
        INSERT INTO Person (Time_the_person_stayed_in_the_city)
        VALUES ('Less than 20 days'), ('Between 20 and 99 days'),('Over 99 days ');

` SELECT Stay_Length, Time_the_person_stayed_in_the_city,

     CASE Stay_Length
       WHEN <20 THEN 'Short'
       WHEN 20>=99 THEN 'Long'
       WHEN >99 THEN 'Very Long'
     ELSE 'Unknown Length of Stay'
     END AS Stay_Length
     FROM Person;`
mysql
1个回答
0
投票

You case statement is wrong

SELECT Stay_Length, Time_the_person_stayed_in_the_city,
 CASE 
   WHEN Stay_Length <20 THEN 'Short'
   WHEN Stay_Length BETWEEN 20 AND 99 THEN 'Long'
   WHEN Stay_Length >99 THEN 'Very Long'
 ELSE 'Unknown Length of Stay'
 END AS Stay_Length
 FROM Person;

 SELECT Stay_Length, Time_the_person_stayed_in_the_city,
 CASE 
   WHEN Stay_Length <20 THEN 'Short'
   WHEN Stay_Length >= 20 AND Stay_Length <= 99 THEN 'Long'
   WHEN Stay_Length >99 THEN 'Very Long'
 ELSE 'Unknown Length of Stay'
 END AS Stay_Length
 FROM Person;

0
投票

请将您的CASE声明修改如下:

 SELECT Stay_Length, Time_the_person_stayed_in_the_city, 
 CASE 
   WHEN Stay_Length <20 THEN 'Short'
   WHEN Stay_Length >= 20 AND Stay_Length <=99 THEN 'Long'
   WHEN Stay_Length >99 THEN 'Very Long'
 ELSE 'Unknown Length of Stay'
 END AS Stay_Length
 FROM Person;`
© www.soinside.com 2019 - 2024. All rights reserved.