У меня есть 3 таблицы, из которых мне нужно извлечь данные, эти данные зависят от результатов из других таблиц, поэтому я пытаюсь использовать структуру if if else, и я получаю синтаксические ошибки. Я могу быть над головой, насколько это имеет опыт SQL. Я генерирую синтаксическую ошибку рядом с первой, если и впоследствии рядом с каждым. Является ли это простой синтаксической ошибкой, или я пытаюсь сделать что-то, что MS SQL 2000 неспособно обрабатывать?Если синтаксис Then Else в MS SQL Server 2000
Благодарим вас за ввод.
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
Go
Begin
Declare @vCasinoName varchar(35)
select @vCasinoName = Description from Gen_Casino
Create Table #AG_Report
(Slotnumber int,
SRID varchar(30),
SerialNumber varchar(15),
CAsset varchar(30),
Mfr varchar(15),
Denomination numeric(12, 2),
Description varchar(30),
Par real,
EPROMID varchar(15),
EPROMID2 varchar(15),
EPROMIDXL varchar(30),
Jurisdiction varchar(30),
Bios varchar(30),
BootChip varchar(30),
VersionChip varchar(30),
CasinoName varchar(35),
)
insert into #AG_Report
select s.SlotNumber,
s.SerialNumber,
m.Manufacturer,
s.Denomination,
s.Description,
s.Par,
s.EPROMID,
s.EPROMID2,
if (CF.FieldID = 6)
BEGIN
CF.Value as SRID,
END
else if (CF.FieldID = 7)
BEGIN
CF.Value as CAsset,
END
else if (CF.FieldID = 9)
BEGIN
else if (CF.FieldID = 9)
BEGIN
CF.value as EPROMIDXL,
else if (CF.FieldID = 13)
BEGIN
CF.Value as Jurisdiction,
END
else if (CF.FieldID = 11)
BEGIN
CF.Value as Bios,
END
else if (CF.FieldID = 12)
BEGIN
CF.Value as BootChip,
END
else if (CF.FieldID = 14)
BEGIN
CF.Value as VersionChip,
END
from CDS_Slotmast S, BB_SlotMastCustomField CF,BB_Mfr M,
where S.SlotMast_id = CF.SlotMast_ID
and CF.Revision = S.Revision
and S.Active = "Y"
order by s.Denomination, s,SlotNumber
Select * from #AG_Report
End
Существует 'IF' _statement_ и' CASE' _expression_. Посмотрите на 'CASE'. – HABO
Как вы думаете, что должна делать логика IF? При вставке псевдоним выбранных полей не имеет значения, и это все, что вы меняете, поскольку это все поле «CF.Value». –