web-dev-qa-db-ja.com

SQL選択リターンの値を置換するには?

私のデータベース(MySQL)テーブルには、それぞれtruefalseを表す10の列があります。

しかし、SELECTでは、GridViewで印刷するためにtrueまたはfalseの代わりに使用する必要があります。

これを行うために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
35
Lai32290

選択肢はたくさんあります:

  1. TRUEFALSEBoolean値のドメインテーブルと結合します。
  2. 使用( この回答で指摘されているように

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

    または、Booleanがサポートされていない場合:

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

次のようなことができます:

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

これがあなたのお役に立てば幸いです。

24
Amilcar Andrade

列を文字列値として使用する場合:

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

名前falsetrueを囲む引用符が削除されたことを除いて、これは同じです。

15

私は解決策を得た

   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を使用しています。これは、2つ以上のオプションで選択した値を操作する別の方法です。

15
Sandeep Kamath

次のようなselect句でキャストを使用できます。

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

Case文は間違っていると言いますが、これは代わりに良い解決策になります。 CASEステートメントの使用を選択した場合、少なくとも1つの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
1
A.D.