私のデータベース(MySQL)テーブルには、それぞれtrue
とfalse
を表す1
と0
の列があります。
しかし、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
選択肢はたくさんあります:
TRUE
、FALSE
Boolean値のドメインテーブルと結合します。使用( この回答で指摘されているように )
SELECT CASE WHEN hide = 0 THEN FALSE ELSE TRUE END FROM
または、Booleanがサポートされていない場合:
SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
次のようなことができます:
SELECT id,name, REPLACE(REPLACE(hide,0,"false"),1,"true") AS hide FROM your-table
これがあなたのお役に立てば幸いです。
列を文字列値として使用する場合:
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
を囲む引用符が削除されたことを除いて、これは同じです。
私は解決策を得た
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つ以上のオプションで選択した値を操作する別の方法です。
次のようなselect句でキャストを使用できます。
SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
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