0

以下は、MSSQL 構文です。これを 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
4

2 に答える 2

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
于 2013-10-15T09:49:16.437 に答える
0

mysql の「select * into」 「select * into」は mysql では許可されていません。この制限を回避する例を次に示します。

CREATE TABLE newtable SELECT * FROM oldtable

于 2019-09-25T09:46:34.443 に答える