MySQL ГУРУ,MySQL DECLARE Синтаксиса (конвертирование из MSSQL)
Я преобразование некоторых отчетов из базы данных MSSQL для использования на базе данных MySQL, и, кажется, не понимает, как DECLARE
работает в MySQL. Ниже приведен код SQL для отчета, как работает в MSSQL. Я читал, что DECLARE
можно использовать только в вложенной функции, я верю, но это просто не подходит для меня.
Текущий отчет SQL: (я анализирую & заменить значения тока & отложенное из моего приложения кода)
DECLARE @Current int;
DECLARE @Pending int;
SET @Current = [1];
SET @Pending = [3];
Select Ticket.TIcketID,
ISNULL((Select LocationName from Location where LocationID = Ticket.SiteCurrentLocation), 'Invalid Location') as [Current Location],
ISNULL((Select LocationName from Location where LocationID = Ticket.SitePendingLocation), 'Invalid Location') as [Pending Location]
from Ticket
where
(SitePendingLocation > 0 AND SitePendingLocation <> SiteCurrentLocation) AND
(SiteCurrentLocation = @Current OR @Current = 0) AND
(SitePendingLocation = @Pending OR @Current = 0)
Любое понимание?
Спасибо - Andrew
EDIT
Рабочая, преобразованный сценарий - что это может помочь другим:
SET @Current = '1';
SET @Pending = '1';
Select Ticket.TIcketID,
IFNULL((Select LocationName from Location where LocationID = Ticket.SiteCurrentLocation), 'Invalid Location') as `Current Location`,
IFNULL((Select LocationName from Location where LocationID = Ticket.SitePendingLocation), 'Invalid Location') as `Pending Location`
from Ticket
where
(SitePendingLocation > 0 AND SitePendingLocation <> SiteCurrentLocation) AND
(SiteCurrentLocation = @Current OR @Current = 0) AND
(SitePendingLocation = @Pending OR @Current = 0)
Вы можете использовать SET самостоятельно (без DECLARE) или заменить @ на _ (или без префикса). См. Http://stackoverflow.com/questions/763718/whats-wrong-with-this-mysql-statement-declare-id-int для аналогичного вопроса. – dash
Спасибо @dash - нет необходимости в 'DECLARE' вообще, отлично! Теперь, чтобы понять, что ему не нравится в 'ISNULL' ... – Fuginator
Это IFNULL ;-) - http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html# function_ifnull – dash