Общие > Базы данных
аналог x ? x : y в SQL а также русские буквы и LIKE в MS SQL
Xander:
Возникла нужда в такой фунции как
id1 ? id1 : id2
или id1 or id2, т.е:
если id1!=0 возвращаем id1, иначе возвращаем id2. Подскажите, как такое сделать используя стандартные средства SQL (или специфичные для Transact-SQL, что в MS SQL)?.
И еще: при переходе с Access на MS SQL LIKE перестал искать без учета регистра. Никто не сталкивался с таким?
ThE0ReTiC:
Э... А почему нельза сделать UDF\'ку с запросом?
Конструкции типа IF...THEN T-SQL поддерживает (http://www.sql.ru)
Xander:
А можно линк на статью про UDF и прочий продвинутый SQL?
А то я в этом ни фига не понимаю еще...
ThE0ReTiC:
так это...
http://www.sql.ru ;)
yandex rules :beer:
http://www.interface.ru/faq/microsoft/sqlserver_faq1_1.htm
http://www.citforum.ru/database/articles/sqlservqa.shtml
Xander:
Ну вот сделал я такую хрень. Она конечно же не работает:
CREATE FUNCTION func ()
RETURNS @ExampleTable TABLE
(city_id int,
city_name varchar(50),
city_masterid int,
city_mid int
)
AS
BEGIN
INSERT @ExampleTable VALUES (city_id,city_name,city_masterid)
SELECT * FROM shops_dictCities
IF city_masterid=0
INSERT @ExampleTable VALUES (city_mid) city_id
ELSE
INSERT @ExampleTable VALUES (city_mid) city_masterid
RETURN
END
GO
SELECT * FROM dbo.func()
Как сделать в IF правильное условие, добраться до нужного значения?
Навигация
Перейти к полной версии