![]() |
|
Модераторы: Akina |
![]()
|
|
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Во, логика тоже работает! И знаешь по-крайней мере один тип функций! +1 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
У меня братишка этот вопрос задал тренеру на курсе по TSQL. Тренер рассказал какие виды и типы функций бывают, в чем их особенности, но ответить на вопрос одной фарзой не смог -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
"Первая создаётся директивой CREATE PROCEDURE, вторая соответственно CREATE FUNCTION." Одна фраза... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Всетки это ответ не на вопрос ;) Ты ответил на вопрос "в чем различие конструкций создания процедуры и функции", таки это чуть разные вопросы -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Ну вообще по этому вопросу, если серьёзно, как я понимаю: функцию можно использовать в запросе, т.к. она возвращает результат, ассоциированный с её именем, в отличие от процедуры, которую можно вызвать только саму по себе, принимая затем из неё именованные результаты.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
На самом деле функция возвращает результат, а процедура нет. Если посмотреть внимательно, вопрос находится в разделе Delphi
Добавлено через 37 секунд Akina, точно |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
MadCoder, можешь ещё в вопросы по SQL добавить (уж коли) вопрос об отличии WHERE от HAVING, а также попросить сравнить объединения типа FROM A JOIN B ON и типа FROM A, B WHERE - когда какое предпочтительнее или, скажем, неприменимо.
С другой стороны, на большинство этих вопросов запросто ответит любой, кто обчитался документации, но не написал ни строчки кода (и в результате тебя ждёт индусский или китайский код, со всеми вытекающими). У меня один знакомый товарищ года три назад искал себе SQL-кодера... он просто нарисовал три связанные таблицы и просил кандидатов написАть максимально эффективный код подсчёта итога, с учётом количества записей в таблицах, а также предложить изменения в структуре таблиц для повышения эффекитивности. Если я правильно помню, только пятый или шестой кандидат сумел наконец без компа на листе бумаги изобразить запрос, который дал бы верные данные. А специально введённый ляпсус со структурой (бредовый индекс) вообще никто не нашёл. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
для процедур и функций в других языках (где присутствует такая терминология) точно так же. вероятно впервые разделение понятий появилось одновременно с созданием языка высокого уровня - Фортрана (FUNCTION и SUBROUTINE), хотя методологическую основу заложил Н.Вирт при создании Pascal. есть понятие чистой функции, т.е. функции, не имеющей побочных эффектов, единственный результат ее деятельности передается через возвращаемое значение. т.е. такая функция наиболее близка к обычной математической функции. обычно в функциональных языках функции чистые. в этом смысле можно считать чистой процедуру (хотя так не говорят), не меняющую значение своих аргументов, т.е. работа которой целиком заключается в создании побочного эффекта. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
А есть разница? AFAIK когда то была, сейчас уже давно нет У меня как то был случай, когда я на листе не смог изобразить запрос типа выбрать последний курс валюты на дату. С учетом того, что я уже и роспись нормально не могу поставить на бумаге, просьба написать запрос на бумаге выглядит как садизм. ;)) а еще и с учетом того, что запросы я пишу не слева на право, а из глубины во вне. Это сообщение отредактировал(а) Zloxa - 1.7.2009, 20:53 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Считается, что есть несколько типов JOIN и куча вариантов WHERE... хотя надо покопаться в доках по новым версиям СУБД - отличия-то начинаешь читать только воткнувшись носом в проблему... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
по идее разницы в результате быть не должно, если нет left/right. а в производительности? план запроса с where составляется сервером. в основе плана с join лежит их последовательность. может ли сервер менять последовательность, указанную в join?
|
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Бродил какой-то бородатый миф, мол джойн через where сервер выполняет посредством кросс джойна с фильтрацией. Возможно миф тянется из истории... на 2000й, парни говорят это отнюдь не так. Что же касается внешних соединений, то таки да, через пре джойн предикаты (*= и =*, если мне не изменяет память) можно выразить далеко не всякий левый/правй жойн. И, помоему, вообще не возможно сделать full join. Но вопрос то был не о том ;) Это сообщение отредактировал(а) Zloxa - 1.7.2009, 21:16 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Вот навскидку: JOIN ON a.id>b.id даст тот же результат, что и WHERE a.id>b.id ?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 10 Всего: 161 |
Akina, разве нет?
У меня нет MS SQL, но результат должен быть одинаков.. планы тоже. Добавлено через 1 минуту и 50 секунд join через where ли, через join ли это join.. просто разная фора записи. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |