webentwicklung-frage-antwort-db.com.de

SQL Wie ersetzt man die Werte von select return?

In meiner Datenbank (MySQL) -Tabelle gibt es eine Spalte mit 1 und 0 für repräsentieren true und false.

Aber in SELECT muss ich es für true oder false zum Drucken in einer GridView ersetzen.

Wie mache ich meine SELECT-Abfrage, um dies zu tun?

In meiner aktuellen Tabelle:

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

Ich brauche es dabei zeigen:

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

Sie haben mehrere Möglichkeiten:

  1. Join mit einer Domain-Tabelle mit TRUE, FALSEBoolean value.
  2. Verwenden Sie ( wie in dieser Antwort angegeben )

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

    Oder wenn Boolean nicht unterstützt wird:

    SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
    
41
frugal-one

Sie können so etwas tun: 

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

Hoffe das kann dir helfen.

24
Amilcar Andrade

Wenn Sie die Spalte als Zeichenfolgenwerte verwenden möchten, gilt Folgendes:

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

Wenn das DBMS BOOLEAN unterstützt, können Sie stattdessen Folgendes verwenden:

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

Das ist dasselbe, außer dass die Anführungszeichen um die Namen false und true entfernt wurden.

15

Ich habe die Lösung bekommen 

   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

Hier wird CASE verwendet. Dies ist eine weitere Möglichkeit, den ausgewählten Wert für mehr als zwei Optionen zu ändern.

10
Sandeep Kamath

Sie können das Casting in der select-Klausel wie folgt verwenden:

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

Ich sage, dass die case-Anweisung falsch ist, dies kann jedoch eine gute Lösung sein. Wenn Sie die CASE-Anweisung verwenden, müssen Sie sicherstellen, dass mindestens eine der CASE-Bedingungen erfüllt ist. Andernfalls müssen Sie einen Fehlerhandler definieren, um den Fehler abzufangen. Denken Sie daran, dass Sie dies nicht mit der IF-Anweisung tun müssen.

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

oder

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