SELECT和WHERE中的SQL CASE用于选择行

时间:2015-09-02 08:01:55

标签: mysql select case

有没有办法让这项工作:

SELECT *, CASE WHEN a=0 THEN "test1"
              WHEN a=1 THEN "test2"
         END AS a FROM table WHERE a LIKE "%test%"

所以它应该给我a=0 or a=1的所有行。关键是我需要使用字符串“test”搜索这些行。

5 个答案:

答案 0 :(得分:1)

在哪里提供案例,

SELECT * FROM table WHERE (CASE WHEN a=0 THEN "test1"
              WHEN a=1 THEN "test2"
         END)  LIKE "%test%"

答案 1 :(得分:0)

如果您希望a = 0或a = 1的所有行都可以使用IN运算符

parts[2]

但如果你真的想要使用案例,你需要FROM语句

答案 2 :(得分:0)

有两个CASE语句,一个用于语句,第二个用于表达式(你需要什么)。你应该做这样的事情 -

SELECT CASE a WHEN 0 THEN 'test1' WHEN 1 THEN 'test2' END

这是一种语法 - Control Flow Functions

答案 3 :(得分:0)

你可以试试这个:

  var app = angular.module('LoginApp', []);
  app.controller('LoginformController', function ($scope) {
            $scope.PasswordRecovery = function () {
                alert("Clicked 2");

            }
        });

Sqlfiddle

如果您想覆盖字段:

SELECT * FROM
    (SELECT *,CASE WHEN a=0 THEN "test1"
                  WHEN a=1 THEN "test2"
             END AS b 
  FROM  TableA) TableB
WHERE b LIKE "%test%"

Sqlfiddle

答案 4 :(得分:0)

SELECT 
  *, 
  ( CASE a
      WHEN 0 THEN "test1" 
      WHEN 1 THEN "test2" 
  END) as a_txt
FROM tableXY

不知道你想用“%test%”

做什么