簡體   English   中英

如何使用案例陳述

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM