使用C#.Net和MYSQL
我想使用CASE语句,例如SQL
询问
SELECT vehicleno,
brandname,
CASE
WHEN inexpire < 0 THEN 'Expired'
ELSE inexpire
END AS inexpire
FROM (SELECT Concat(plateno, vehicleno) AS vehicleno,
brandname,
Datediff(inedate, Curdate()) AS inexpire
FROM tb_car
WHERE inedate < DATE_ADD(Curdate(), INTERVAL 30 DAY)
GROUP BY vehicleno) AS tab1
当我运行查询时,它将输出显示为
System.Byte[]
而不是“过期”在上面的查询中,expire是列值
我该如何解决这个问题.....
需要查询帮助
最佳答案
我认为您在两种情况下都需要使用相同的数据类型
例如
case when inexpire < 0 then 'Expired' else 'inexpired' end as inexpire
要么
case when inexpire < 0 then 1 else inexpire end as inexpire
编辑
实际上,我只是在计算机上进行了快速测试,这种混合数据类型不会导致错误,但是结果在MySQL Workbench中仅显示为
Blob
SELECT
cast( CASE WHEN inexpire < 0 THEN 'Expired' ELSE inexpire END as char) as inexpire
按照建议的here停止此问题。因此,这应该避免
Byte[]
问题