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
7 réponses
Vous avez un certain nombre de choix:
- rejoignez une table de domaine avec
TRUE
,FALSE
booléen valeur. (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
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.
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.
Vous pouvez utiliser le casting dans la clause select comme:
SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
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.
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
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)