2011-11-09 40 views
1

這是查詢在mysql中將value varchar轉換爲其他數據類型?

CASE SF.value 
      WHEN '' THEN '9999999999' 
      WHEN 'N/A' THEN '99999999' 
      WHEN 'POA' THEN '999999999' 
      WHEN 'Free' THEN -1 
      ELSE IF(SF.value IS NULL,'9999999999',CAST(SF.value as DECIMAL)) 
     END as priceval, 

    ///End Query 

我值DB作爲

value(varchar) 

    4 
    4.5 
    4.3 
    6.6 

從數據庫讀取後,

PRINTING: 
    var_dump($data); 

    Output 
    --------- 
    string(1) "4" 
    string(1) "5" 
    string(1) "5" 
    string(1) "7" 

我需要按整數如下順序獲得價值或浮或十進制但值依次爲

string(1) "4" 
    string(3) "4.3" 
    string(3) "4.5" 
    string(3) "6.6" 

    (OR) 

    int(1) "4" 
    int(3) "4.3" 
    int(3) "4.5" 
    int(3) "6.6" 

回答

1

您使用DECIMAL沒有指定精度,儘量CAST(SF.value AS DECIMAL(10,1))

+0

謝謝老兄現在workiing –

+0

其實,當你施放到十進制的你總是會收到字符串爲您的查詢結果。你實際上不需要將它投射到任何東西,反正你會以字符串的形式接收它。絕對沒有辦法以int「4.5」的形式接收它,整數是整數。 – lanzz

相關問題