SQL как заменить значения select return?

в моей таблице базы данных (MySQL) есть столбец с 1 и 0 представляют true и false соответственно.

а в SELECT, мне нужно его заменить на true или false для печати в GridView.

как я SELECT запрос для этого?

в моей текущей таблице:

 id   |  name    |  hide
  1   |  Paul    |  1
  2   |  John    |  0
  3   |  Jessica |  1

мне нужно это показать тем самым:

  id  |  name    |  hide
  1   |  Paul    |  true
  2   |  John    |  false
  3   |  Jessica |  true

7 ответов


у вас есть несколько вариантов:

  1. присоединиться к таблице домена с TRUE, FALSE Boolean значение.
  2. использовать (как указано в этом ответе)

    SELECT CASE WHEN hide = 0 THEN FALSE ELSE TRUE END FROM
    

    или Boolean не поддерживается:

    SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
    

вы можете сделать что-то вроде этого:

SELECT id,name, REPLACE(REPLACE(hide,0,"false"),1,"true") AS hide FROM your-table

надеюсь, это поможет вам.


если вы хотите столбец в качестве строковых значений, то:

SELECT id, name, CASE WHEN hide = 0 THEN 'false' ELSE 'true' END AS hide
  FROM anonymous_table

если СУБД поддерживает BOOLEAN, вы можете использовать вместо этого:

SELECT id, name, CASE WHEN hide = 0 THEN false ELSE true END AS hide
  FROM anonymous_table

то же самое за исключением того, что кавычки вокруг имен false и .


вы можете использовать приведение в предложении select, например:

SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;

Я получил решение

   SELECT 
   CASE status
      WHEN 'VS' THEN 'validated by subsidiary'
      WHEN 'NA' THEN 'not acceptable'
      WHEN 'D'  THEN 'delisted'
      ELSE 'validated'
   END AS STATUS
   FROM SUPP_STATUS

это использование случая Это еще один способ манипулировать выбранным значением для более чем двух параметров.


Я говорю, что утверждение case неверно, но это может быть хорошим решением. Если вы решите использовать CASE заявление, вы должны убедиться, что по крайней мере один из CASE условие выполнено. В противном случае необходимо определить обработчик ошибок, чтобы поймать ошибку. Помните, что вам не нужно делать это с IF заявление.

SELECT if(hide = 0,FALSE,TRUE) col FROM tbl; #for BOOLEAN Value return

или

SELECT if(hide = 0,'FALSE','TRUE') col FROM tbl; #for string Value return

замените значение в самой инструкции select...

(случай, когда мобильный, как "966%" затем (выберите заменить (CAST (Mobile AS nvarchar (MAX)),'966','0')) ELSE Mobile END)