表1:
kalaname | to | tbox | tkh | price | pricek
sql查询是:
select kalaname , if(to=0,'0',str(to) + '*' + str(tbox)) as computeto ,
tkh , price , pricek
from table1 ------- Error
如何将护发素放在色谱柱上?
答案 0 :(得分:3)
你必须使用CASE ... WHEN ... ELSE ... END子句。
case when to = 0
then '0'
else str(to) + '*' + str(tbox)
end as computeto
顺便说一句,你可能会对连接中str的结果感到惊讶。 您可能需要LTRIM / RTRIM结果为str。
类似
LTRIM(RTRIM(STR(to))) + '*' + LTRIM(RTRIM(STR(to)))
或
REPLACE(STR(to), ' ', '')
答案 1 :(得分:1)
使用CASE
声明。尝试这样的事情:
select
kalaname ,
CASE WHEN (to = 0) THEN '0', ELSE str(to) + '*' + str(tbox) END as computeto,
tkh , price , pricek
from table1
根据to
和tbox
列的类型,转换可能和字符串连接可能无法获得预期的结果。您可以尝试使用CAST(to AS VARCHAR(20)) + '*' + CAST(tbox AS VARCHAR(20))
代替。