Вопросы с тегом «functions»

Функция выполняет определенную работу, обычно принимая параметры в качестве входных данных. С точки зрения баз данных они могут быть специфическими для SQL или поставщика базы данных.

60
Создать индекс, если он не существует

Я работаю над функцией, которая позволяет мне добавить индекс, если он не существует. Я столкнулся с проблемой, что я не могу получить список индексов для сравнения. есть идеи? Эта проблема аналогична проблеме создания столбца, которая решается с помощью следующего кода:...

57
Скользящая сумма диапазона дат с использованием оконных функций

Мне нужно рассчитать скользящую сумму по диапазону дат. Чтобы проиллюстрировать это, используя пример базы данных AdventureWorks , следующий гипотетический синтаксис сделал бы именно то, что мне нужно: SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER (...

53
Как объединить таблицу с табличной функцией?

У меня есть пользовательская функция: create function ut_FooFunc(@fooID bigint, @anotherParam tinyint) returns @tbl Table (Field1 int, Field2 varchar(100)) as begin -- blah blah end Теперь я хочу присоединиться к этому на другом столе, вот так: select f.ID, f.Desc, u.Field1, u.Field2 from Foo f...

52
Есть ли какая-либо польза от SCHEMABINDING помимо функции Halloween Protection?

Общеизвестно, что SCHEMABINDINGфункция может избежать ненужной буферизации в планах обновления: Если вы используете простые пользовательские функции T-SQL, которые не касаются каких-либо таблиц (т. Е. Не обращаются к данным), убедитесь, что вы указали эту SCHEMABINDINGопцию во время создания...

30
MySQL и оконные функции

Кажется, что MySQLне поддерживает оконные функции. Например, простое: COUNT(*) OVER() AS cntне работает. Что я не уверен, так это то, относится ли это к коммерческой версии (я полагаю, что версия сообщества ограничена). Если нет, то как обойти эту недостающую...

29
Есть ли способ предотвратить скалярные UDF в вычисляемых столбцах от запрета параллелизма?

Много написано об опасностях скалярных пользовательских функций в SQL Server. Случайный поиск вернет кучу результатов. Однако есть несколько мест, где Scalar UDF - единственный вариант. Как пример: при работе с XML: XQuery не может использоваться как определение вычисляемого столбца. Одна из...

28
Функция Postgres назначает результаты запроса нескольким переменным

Мне нужно присвоить значения переменной 2, как показано ниже в функции Postgres. a := select col1 from tbl where ... b := select col2 from tbl where ... Как я могу назначить 2 значения для 2 переменных в одной строке команды? подобно a,b := select col1,col2 from tbl where...

26
Почему функция LEN () сильно недооценивает количество элементов в SQL Server 2014?

У меня есть таблица со строковым столбцом и предикатом, который проверяет строки определенной длины. В SQL Server 2014 я вижу оценку в 1 строку независимо от длины, которую я проверяю. Это приводит к очень плохим планам, потому что на самом деле есть тысячи или даже миллионы строк, и SQL Server...

24
Проверьте, является ли строка палиндромом, используя T-SQL

Я новичок в T-SQL. Я хочу решить, является ли входная строка палиндромом, с output = 0, если это не так, и output = 1, если это так. Я все еще выясняю синтаксис. Я даже не получаю сообщение об ошибке. Я ищу различные решения и отзывы, чтобы лучше понять и понять, как работает T-SQL, чтобы стать...

24
Превышен уровень вложенности скалярных функций при использовании ссылки

Цель При попытке создать тестовый пример функции, ссылающейся на себя, одна версия завершается ошибкой, а другая - успешно. Единственное отличие заключается в добавлении SELECTв тело функции, что приводит к разному плану выполнения для обоих. Функция, которая работает CREATE FUNCTION dbo.test5(@i...

22
Кэширует ли SQL Server результат табличной функции с несколькими операторами?

Табличная функция с несколькими утверждениями возвращает свой результат в табличной переменной. Эти результаты когда-либо повторно используются, или функция всегда полностью оценивается каждый раз, когда она...

22
Ограничить результаты до первых 2 строк рейтинга

В SQL Server 2008 я использую, RANK() OVER (PARTITION BY Col2 ORDER BY Col3 DESC)чтобы вернуть набор данных с RANK. Но у меня есть сотни записей для каждого раздела, поэтому я получу значения с рангом 1, 2, 3 ... 999. Но я хочу только до 2 RANKsв каждом PARTITION. Пример: ID Name Score Subject 1...

21
Есть ли в PostgreSQL агрегатная функция first-) безопасной для типов?

Полный вопрос переписать Я ищу агрегатную функцию First (). Здесь я нашел то, что почти работает: CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1; $$; -- And then wrap an aggregate around it CREATE AGGREGATE...

20
Необходим ли коммит после операции DML в функции / процедуре?

Интересно узнать, нужно ли писать коммит после вставки / удаления / обновления в функции / процедуре? Пример: create or replace function test_fun return number is begin delete from a; return 0; end; или процедура create or replace procedure aud_clear_pro as begin delete from a; end; нужно ли...

20
SQL Server - обработка локализации строк во вложенных недетерминированных стеках представлений

При профилировании базы данных я столкнулся с представлением, которое ссылается на некоторые недетерминированные функции, к которым обращаются 1000-2500 раз в минуту для каждого соединения в пуле этого приложения. Простое SELECTпредставление дает следующий план выполнения: Это выглядит как сложный...

19
Как работает этот синтаксис? {fn CurDate ()} или {fn Now ()} и т. д.

Недавно я просматривал довольно старые хранимые процедуры, написанные для SQL Server 2005, и заметил кое-что, чего не понимаю. Похоже, это какой-то тип вызова функции. Образец: SELECT o.name, o.type_desc, o.create_date FROM sys.objects o WHERE o.create_date < {fn Now()} -1; Это будет отображать...

18
EXPLAIN ANALYZE не показывает детали для запросов внутри функции plpgsql

Я использую функцию PL / pgSQL в PostgreSQL 9.3 с несколькими сложными запросами внутри: create function f1() returns integer as $$ declare event tablename%ROWTYPE; .... .... begin FOR event IN SELECT * FROM tablename WHERE condition LOOP EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return; END...