Comment remplacer les valeurs de retour select?

dans ma table de base de données (MySQL), a une colonne avec 1 et 0 pour représenter true et false respectivement.

Mais SELECT, j'en ai besoin pour remplacer true ou false pour l'impression dans un GridView.

Comment faire mon SELECT requête pour ce faire?

Dans ma table:

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

j'ai besoin de lui montrer de ce fait:

  id  |  name    |  hide
  1   |  Paul    |  true
  2   |  John    |  false
  3   |  Jessica |  true
24
demandé sur marc_s 2013-05-25 23:24:32
la source

7 ответов

Vous avez un certain nombre de choix:

  1. rejoignez une table de domaine avec TRUE, FALSE booléen valeur.
  2. (comme indiqué dans cette réponse)

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

    Ou si booléen n'est pas pris en charge:

    SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
    
35
répondu frugal-one 2017-05-23 15:18:01
la source

Vous pouvez faire quelque chose comme ceci:

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

j'Espère que cela peut vous aider.

22
répondu Amilcar Andrade 2013-05-25 23:43:04
la source

Si vous voulez la colonne des valeurs de chaîne, puis:

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

si le SGBD supporte booléen, vous pouvez utiliser à la place:

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

C'est la même chose sauf que les guillemets autour des noms de false et true ont été supprimés.

14
répondu Jonathan Leffler 2013-05-25 23:30:37
la source

Vous pouvez utiliser le casting dans la clause select comme:

SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
7
répondu jospratik 2013-05-25 23:51:59
la source

j'ai la solution

   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

ceci utilise le cas C'est un autre de manipuler la valeur sélectionnée pour plus que deux options.

7
répondu Sandeep Kamath 2017-06-02 15:58:58
la source

je dis que le cas énoncé est faux, mais cela peut être une bonne solution à la place. Si vous choisissez d'utiliser le CASE déclaration, vous devez vous assurer qu'au moins l'un des CASE condition est mis en correspondance. Sinon, vous devez définir un gestionnaire d'erreur pour intercepter l'erreur. Rappelez-vous que vous ne devez pas faire cela avec le IF déclaration.

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

ou

SELECT if(hide = 0,'FALSE','TRUE') col FROM tbl; #for string Value return
0
répondu A.D. 2017-12-28 07:39:35
la source

remplacer la valeur dans la déclaration select elle-même...

(cas lorsque Mobile comme '966%' puis (sélectionnez Remplacer (CAST (Mobile comme nvarchar (MAX)),'966','0')) ELSE mobile END)

-1
répondu Abu Abdullah 2018-03-28 12:59:48
la source

Autres questions sur