我想使用case
语句更改结果中的值,但似乎忽略了这一点。非常简单,如果表中的值为1
,则必须更改为True
,如果值为0
,则必须更改为false
。这是我做的:
CASE pbc.bShownUp
WHEN 0 THEN 'False'
ELSE pbc.bShownUp
END
AND
CASE ch.bShownUp
WHEN 1 THEN 'True'
ELSE ch.bShownUp
END
无论我做什么,结果仍然是0或1。
请帮忙。
答案 0 :(得分:5)
当您使用CASE
表达式时,数据的返回类型必须与所有WHEN
部分相同或更简单地放置,CASE
必须解析为单一类型。
从类型的角度来看,目前你的代码是
CASE BIT
WHEN 1 then NVARCHAR
ELSE BIT
这不会奏效。
所以你必须做这样的事情
CASE ch.bShownUp
WHEN 1 then 'TRUE'
ELSE 'FALSE'
答案 1 :(得分:2)
如果Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// Always show the chooser (if there are multiple options available)
startActivityForResult(Intent.createChooser(i,
"Select Picture"), PICK_IMAGE_REQUEST);
是数字列,则会产生混合结果 - 有时为0/1,有时为' False' /' True'例如串。我认为bShownUp
的类型为VARCHAR,您必须将bShownUp
更改为WHEN 0
。
答案 2 :(得分:2)
如果您的bShownUp为$query = 'SELECT distinct a.indent_req_id,b.id,b.approval_status,b.date,c.department from tra_dt a join tra_head b on b.id = a.indent_req_id join mas_dep c on b.req_dpt_id = c.dept_id where b.approval_status = "a" and cast(("exp_date")as date) >= " cast('.$now. 'as date)"';
,那么您的查询应该是
VARCHAR
OR
尝试以下内容,
CASE pbc.bShownUp
WHEN '0' THEN 'False'
ELSE pbc.bShownUp
END
AND
CASE ch.bShownUp
WHEN '1' THEN 'True'
ELSE ch.bShownUp
END
答案 3 :(得分:-1)
我认为这样做:
case ch.bShownUp
when 1 then 'True'
else 'False'
end