[英]How to use Case Statement
使用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[]
而不是“ Expired”
在上面的查詢中,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
按照此處的建議停止此問題。 因此,這應該避免Byte[]
問題
IF(inexpire < 0, 'Expired',inexpire) AS inexpire
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.