2013-10-15 24 views
0

以下是MSSQL語法,如何將其轉換到MySQL如何使用選擇的情況下進入MySQL的

SELECT   
    _nextBillingDate = UB.NextBillingDate, 
    _billingFrequency = (CASE IFNULL(UB.BillingFrequency,0) WHEN 0 THEN 
    _defaultBillingFrequency ELSE UB.BillingFrequency END), 
    _isCompletelyCreditBilled = (CASE WHEN PO.ChargeAmount > 0 THEN 0 ELSE 1 END), 
    _ownerId = PO.OwnerId 
    FROM PaymentOrder PO 
    INNER JOIN UserBillingInfo UB ON PO.OwnerId = UB.OwnerId 
    WHERE PO.Id = _paymentOrderId 
+0

閱讀有關MSSQL和MySQL之間的差異。 –

+0

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html – Shin

+0

您可以下載可用於從MSSQL轉換爲MySQL語句的應用程序。檢查它[一](http://www.convert-in.com/mss2sql.htm)[two](https://a5-downloads.phpnuke.org/en/c150357/mssql-to-mysql-database-免費轉換器 - 下載 - 全回顧) – Joshi

回答

2

在程序,MySQL使用select cols into vars from ...風格的語法,那麼試試這個:

-- DECLARE variables at the top of your procedure 

SELECT 
    UB.NextBillingDate, 
    CASE IFNULL(UB.BillingFrequency,0) WHEN 0 THEN _defaultBillingFrequency ELSE UB.BillingFrequency END, 
    CASE WHEN PO.ChargeAmount > 0 THEN 0 ELSE 1 END, 
    PO.OwnerId 
INTO 
    _nextBillingDate, _billingFrequency, _isCompletelyCreditBilled, _ownerId 
FROM PaymentOrder PO 
INNER JOIN UserBillingInfo UB ON PO.OwnerId = UB.OwnerId 
WHERE PO.Id = _paymentOrderId 
相關問題