58

在我的数据库(MySQL)表中,有一列分别表示10表示truefalse

但是在GridView 中SELECT,我需要它替换truefalse打印。

如何进行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
4

8 回答 8

79

您有多种选择:

  1. TRUE使用布尔FALSE 加入域表。
  2. 使用(如this answer中所指出的

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

    或者如果不支持布尔值:

    SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
    
于 2013-05-25T19:28:23.917 回答
44

我得到了解决方案

   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 This is another to操纵两个以上选项的选定值。

于 2017-06-02T12:58:58.557 回答
33

你可以这样做:

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

希望这可以帮到你。

于 2013-05-25T19:43:04.030 回答
22

如果要将列作为字符串值,则:

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

如果 DBMS 支持 BOOLEAN,则可以改用:

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

false除了名称周围的引号和true被删除之外,这是相同的。

于 2013-05-25T19:30:37.940 回答
8

您可以在 select 子句中使用强制转换,例如:

SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
于 2013-05-25T19:33:45.413 回答
2

我说案例陈述是错误的,但这可能是一个很好的解决方案。如果您选择使用该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
于 2017-12-28T04:39:35.860 回答
0

在 Postgres 11 中,我必须这样做:

type是一个int

SELECT type,
CASE 
    WHEN type = 1 THEN 'todo'
    ELSE 'event'
END as type_s
from calendar_items;
于 2021-08-26T11:15:16.883 回答
-1

替换选择语句本身中的值...

(如果 Mobile LIKE '966%' THEN (select REPLACE(CAST(Mobile AS nvarchar(MAX)),'966','0')) ELSE Mobile END)

于 2018-03-28T09:59:48.163 回答