powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вычисляемое поле
11 сообщений из 11, страница 1 из 1
Вычисляемое поле
    #32139050
multiwest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как в FireBird написать вычисляемое поле типа
Код: plaintext
 (case when ([net] >  0 ) then ([Цена] / [net]) else  0  end)

это для MS SQLServer.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139057
Седов А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
multiwest
Если можно, спросите так, чтоб вопрос был понятен.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139063
multiwest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два числовых поля х1 и х2
необходимо создать третье вычисляемое поле х1/х2
но необходимо учесть что если х2=0 то результат =0
Так понятней.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139074
Седов А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 multiwest

В селекте подобную конструкцию поддерживает только FB1.5
В остальных случаях - хранимая процедура.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139079
multiwest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я хочу сделать в таблице.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139080
Седов А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 multiwest
простите, в куда ?
Это как ?
напишите подробно, не поленитесь. Похоже Вам подойдёт триггер "После вставки"
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139183
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IBase можно применить UDF в конструкции "COMPUTED BY ()".
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139187
multiwest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу пример создания таблицы в MS SQLServer

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE [dbo].[PrLang] (
	[товар] [тип_товар] NOT NULL ,
	[Фирма] [тип_фирма] NOT NULL ,
	[группа] [тип_группа] NOT NULL ,
	[Описание] [тип_описание] NULL ,
	[Замена] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[Цена] [float] NULL ,
	[ОптЦена] [float] NULL ,
	[Net] [float] NULL ,
	[fix] [bit] NULL ,
	[ДатаFix] [datetime] NULL ,
	[newnet] [float] NULL ,
	[newcena] [float] NULL ,
*	[k] AS (case when ([net] >  0 ) then ([Цена] / [net]) else  0  end) ,
	[tovar] [varchar] ( 100 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[brend] [varchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL 
) ON [PRIMARY]
GO


* вычисляемое поле где и реализовано данное условие.
Надеюсь что так будет понятней.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139403
Седов А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 multiwest

Ройте в сторону триггеров "после вставки, после обновления".
Таблица создаётся "как обычно"
CREATE TABLE [dbo].[PrLang] (
**********
* k AS numeric(15,4)
********
)

А в триггеры пишем

if new.net>0 then
new.k=new."Цена"/new.net;
else new.k=0;
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139466
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все же хочется, чтобы поле было вычисляемым, есть еще вариант (кроме UDF)... Ограничение на значения [net] или на значения [net] и [цена] одновременно, определенные при создании таблицы.
...
Рейтинг: 0 / 0
Вычисляемое поле
    #32139544
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
причем тут вычисляемые поля.... ну если хочется конечно хранить и синхронизировать дополнительное поле (дополнительный источник ошибок...)

1) Я думаю, сдесь лучше написать UDF которая вычисляла бы необходимое значений.
2) Создать таблицу
3) Создать на базе таблицы представление, в котором нужное поле вычисляется при помощи UDF
4) Радоваться жизни

Только не стоит пытаться что-то нелеснтное сказать в сторону IB. Это продукты разного класса
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вычисляемое поле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]