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
Ответы
Ответ 1
У вас есть несколько вариантов:
- Присоединитесь к таблице домена с
TRUE
, FALSE
Логическое значение.
-
Используйте (как указано в этом ответе)
SELECT CASE WHEN hide = 0 THEN FALSE ELSE TRUE END FROM
Или если Boolean не поддерживается:
SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
Ответ 2
Вы можете сделать что-то вроде этого:
SELECT id,name, REPLACE(REPLACE(hide,0,"false"),1,"true") AS hide FROM your-table
Надеюсь, это поможет вам.
Ответ 3
Если вы хотите, чтобы столбец был строковым, то:
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
и true
.
Ответ 4
Вы можете использовать кастинг в предложении select, например:
SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
Ответ 5
Я получил решение
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
Это другое, чтобы манипулировать выбранным значением для более двух опций.
Ответ 6
Я говорю, что аргумент 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