SQL查询中CASE WHEN语句的正确写法咨询
修正包含CASE WHEN的SQL语句以实现奇偶性判断需求
你的SQL语句存在两个语法逻辑错误:
- 重复使用
WHERE关键字:原语句里连续写了两次WHERE,这是语法错误,多条件筛选只需要一个WHERE,后续条件用AND连接即可。 - CASE WHEN的位置错误:你要生成
Side这个新字段,必须把CASE WHEN逻辑放在SELECT列表中,而不是WHERE子句里——WHERE是用来过滤行的,不是用来输出新字段的。
修正后的SQL语句如下:
SELECT Abonent, CASE WHEN `House` % 2 = 0 THEN 'Правий' ELSE 'Лiвий' END AS Side FROM phone WHERE `Street` LIKE "%примiська%"
如果你的数据库不支持%作为取模运算符(比如SQL Server),可以改用MOD()函数:
SELECT Abonent, CASE WHEN MOD(`House`, 2) = 0 THEN 'Правий' ELSE 'Лiвий' END AS Side FROM phone WHERE `Street` LIKE "%примiська%"
修改后,这条语句会从phone表中筛选出街道名称包含"примiська"的记录,同时根据House字段的奇偶性生成Side字段(偶数对应'Правий',奇数对应'Лiвий'),最终返回Abonent和Side两个字段的数据。
内容的提问来源于stack exchange,提问作者Lykas
相关产品推荐
相关产品推荐

