Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Firebird, InterBase |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 55 вперед Ctrl→ |
Симонов Денис Member Откуда: Рязань Сообщений: 10794 |
WildSery, ты устал. С чего бы это тоже самое? Ты говоришь про векторные сравнения, а я про использование результатов коррелированных производных таблиц. |
20 фев 18, 16:28 [21205604] Ответить | Цитировать Сообщить модератору |
Старый плюшевый мишка Member Откуда: Сообщений: 926 |
Я чего-то туплю. Мой убогий разум никак не может объединить "where b.id=a.id" и "простыми джойнами связать a и b не получается" в единую понятийную картину :( |
||
20 фев 18, 17:04 [21205761] Ответить | Цитировать Сообщить модератору |
KreatorXXI Member Откуда: Москва Сообщений: 1042 |
Симонов Денис, Хорошо! Тогда и результат подзапроса можно будет сразу в конструкцию "where..." засунуть. Но, по-моему, Оракул поддерживает синтаксис, как я привёл. Могу ошибаться, давно не брал шашек в руки. |
20 фев 18, 17:06 [21205770] Ответить | Цитировать Сообщить модератору |
Старый плюшевый мишка Member Откуда: Сообщений: 926 |
Это каунт, падлюка. Единственный из агрегатов, всегда что-нибудь да возвращающий, есть данные, нет данных... |
||
20 фев 18, 17:06 [21205771] Ответить | Цитировать Сообщить модератору |
Старый плюшевый мишка Member Откуда: Сообщений: 926 |
Жаль подредактировать нельзя. Если бы во вложенном селекте был first, то он, в смысле мой разум, добился бы своего. В смысле связал бы. |
||||
20 фев 18, 17:11 [21205793] Ответить | Цитировать Сообщить модератору |
Мимопроходящий Member Откуда: бурятский тундрюк, эсквайр Сообщений: 31963 |
20.02.2018 17:06, Старый плюшевый мишка пишет: > Это каунт, падлюка. Единственный из агрегатов, всегда что-нибудь да возвращающий, есть данные, нет данных... как оказалось, в данном контексте любой агрегат даёт фетч. например: SELECT 'Text', MAX(d.Rdb$description) FROM RDB$DATABASE d WHERE (1=2) Posted via ActualForum NNTP Server 1.5 |
20 фев 18, 17:13 [21205799] Ответить | Цитировать Сообщить модератору |
Симонов Денис Member Откуда: Рязань Сообщений: 10794 |
Старый плюшевый мишка, не всегда. Вот простой пример, когда надо вытащить запись на последнюю дату. Как только вытаскиваемых полей больше одного, то подзапросы приходится дублировать либо делать дополнительный запрос select a.f1, c.f2, c.f3 from a lateral join ( select b.f2, b.f3 from b where a.f2 = b.f1 order by b.bydate desc fetch first rows only ) c on true |
20 фев 18, 17:16 [21205818] Ответить | Цитировать Сообщить модератору |
KreatorXXI Member Откуда: Москва Сообщений: 1042 |
Старый плюшевый мишка, Та же фигня, если использовать агрегаты. Например, сумму по количеству и сумму по деньгам. Одновременно. |
20 фев 18, 17:34 [21205897] Ответить | Цитировать Сообщить модератору |
Хотитель хотелок
Guest |
Неоднозначное утверждение. Рождение, по статистике - основная причина смерти, а PSQL - ваще опасен для неофита. Эта же конкретная хотелка - исключительно про удобство. Когда код завален кусками V1 = null; .. Vn = null; - он становится плохо читаемым. Пропустить одну из Vi - элементарно. Когда код не читаем - отстрелить себе ногу намного проще даже зная все известные и потенциальные грабли. |
||
20 фев 18, 19:36 [21206204] Ответить | Цитировать Сообщить модератору |
hvlad Member Откуда: Сообщений: 11195 |
|
||
20 фев 18, 21:12 [21206315] Ответить | Цитировать Сообщить модератору |
Хотитель хотелок
Guest |
А по самОй хотелке? |
||
20 фев 18, 21:53 [21206374] Ответить | Цитировать Сообщить модератору |
dimitr Member Откуда: PNZ Сообщений: 6945 |
у меня по самой идее пока нет критических возражений (хоть и не считаю это особо важным). Навскидку напрашивается синтаксис а-ля: SELECT ... INTO :VAR1 DEFAULT NULL, :VAR2 DEFAULT NULL но он не особо экономит пальцестучание по клаве. |
||
21 фев 18, 09:04 [21206853] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
Про табличные переменные было? Иногда бывают очень полезны. |
21 фев 18, 09:33 [21206926] Ответить | Цитировать Сообщить модератору |
dimitr Member Откуда: PNZ Сообщений: 6945 |
передавать наружу из процедуры небось? |
||
21 фев 18, 10:00 [21206997] Ответить | Цитировать Сообщить модератору |
hvlad Member Откуда: Сообщений: 11195 |
Скорее уж нормальное "векторное" присваивание *перед* селектом: (VAR1, VAR2, .., VARN) = (VAL1, VAL2, .., VALN) |
||||
21 фев 18, 10:37 [21207098] Ответить | Цитировать Сообщить модератору |
Симонов Денис Member Откуда: Рязань Сообщений: 10794 |
hvlad, + за векторные присваивания и сравнения |
21 фев 18, 10:51 [21207148] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
Нет. Вытаскивать наружу данные изнутри откатанной транзакции, как пример. |
||||
21 фев 18, 11:05 [21207184] Ответить | Цитировать Сообщить модератору |
Симонов Денис Member Откуда: Рязань Сообщений: 10794 |
SQL2008, откатанной ![]() и чем тебе табличные переменные помогут? |
21 фев 18, 11:10 [21207204] Ответить | Цитировать Сообщить модератору |
dimitr Member Откуда: PNZ Сообщений: 6945 |
SQL2008, пример покажи на пальцах |
21 фев 18, 11:11 [21207209] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
Тогда и не откачиваются ![]() Отроллбаченные! Так годится?
1. Открывам транзакцию. 2. Помещаем данные в табличную переменную. Допустим, подготовленную из сложного запроса. 3. Записываем из табличной в некую таблицу в БД. 4. Ошибка при записи откатывает транзакции. Или сами откатываем по каким-то соображениям. 5. Смотрим на данные в табличной переменной, что в них не так. Пример примитивен, но он показывает подход. |
||||
21 фев 18, 11:22 [21207264] Ответить | Цитировать Сообщить модератору |
Шавлюк Евгений Member Откуда: Одесса Сообщений: 516 |
Табличные переменные были бы удобны для передачи данных в ES (external db) |
21 фев 18, 11:26 [21207290] Ответить | Цитировать Сообщить модератору |
Мимопроходящий Member Откуда: бурятский тундрюк, эсквайр Сообщений: 31963 |
граждане, а чем вам GTT не ананас?! Posted via ActualForum NNTP Server 1.5 |
21 фев 18, 11:29 [21207307] Ответить | Цитировать Сообщить модератору |
Симонов Денис Member Откуда: Рязань Сообщений: 10794 |
SQL2008, причём тут табличные переменные? Есть автономные транзакции + обычные таблицы или GTT уровня сессии. Всё легко реализуется
По мне так тут лучше придумать batch для ES |
||
21 фев 18, 11:31 [21207313] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
А у этих таблиц есть независимость от транзакций? Если так, то снимаю свое предложение. |
||
21 фев 18, 11:32 [21207318] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4392 |
Можете привести маленький пример? 1. Создать GTT, пусть будет одно текстовое поле. 2. Внести запись "Прав SQL2008" 3. Открыть транзакцию. 4. Проапдейтить GTT строкой "Прав Симонов Денис" 5. Откатить транзакцию. 6. Сделать SELECT * FROM GTT |
||
21 фев 18, 11:36 [21207347] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 55 вперед Ctrl→ |
Все форумы / Firebird, InterBase | ![]() |