Войти
ПрограммированиеФорумОбщее

SQL DATABASE (2 стр)

Страницы: 1 2 3 418 Следующая »
#15
18:10, 30 янв 2023

entryway
> в каком-то диалекте просто name is null не сработает?
не понимаю.. так:

order by name is null

?
в SQL-же нет концепции что bool выражение можно кастовать к 0 или 1 (not 0).
он заставляет писать case выражение

#16
18:14, 30 янв 2023

у меня работает, mysql

у тебя select 42 is null возвращет не 0 что ли?

#17
(Правка: 18:25) 18:19, 30 янв 2023

MSSQL

select 42 is null

Msg 156, Level 15, State 1, Line 6
Incorrect syntax near the keyword 'is'.

та же беда:

select cast((42 is null) as int)

PostgreSQL

сработал как ожидается - вернул false


SQLite
сразу кастанул результат в 0

#18
18:31, 30 янв 2023

учебник пишет
Когда создается запрос с использованием
SELECT*, гарантировано получение в результате запроса столбцов в порядке опреде-
ления.
если без звезды то гарантии нет.

пакет Microsoft SQL server
др пакеты наверно могут отличаться моментами

на это задание отводится полтора часа.

#19
19:13, 30 янв 2023

Rikk
> если без звезды то гарантии нет.
MSSQL - посылает без звезды (Incorrect syntax near the keyword 'from'.) select
SQLite - посылает без звезды
PostgreSQL - выдаёт пустой ответ (но количество пустых рядов соответствует реальности)
MySQL - посылает без звезды

  • посылает = выдаёт ошибку
  • #20
    (Правка: 20:20) 19:46, 30 янв 2023

    Offtop

    + Показать
    #21
    19:53, 30 янв 2023

    https://minyurov.files.wordpress.com/2014/10/microsoft-sql-server… 012-t-sql.pdf
    учебник пробегите быстро до стр 140
    стр 120 начинается соединения join
    до стр 120 разные варианты стандартного select-from-where-group-order by

    #22
    20:18, 30 янв 2023

    Rikk
    > учебник пробегите быстро до стр
    > если без звезды то гарантии нет.
    а где про запрос без звезды вида:
    SELECT FROM OPERAT
    прочитать?

    Учебник староват, потому что в нём, вроде бы не пишут нифига про window-function (аналитические функции), которые могут обрабатывать данные построчно.
    для MSSQL это панацея и в каждой бочке затычка в 2020х

    #23
    (Правка: 20:28) 20:25, 30 янв 2023

    skalogryz
    > обрабатывать данные построчно.
    > для MSSQL это панацея
    Неужели SQLite круче чем MSSQL, там всё работает?

    Даже свои функции можно вносить находу.

    #24
    20:27, 30 янв 2023

    flint2
    > Неужели SQLite круче чем MSSQL, там всё работает?
    в каком смысле? window функции не сразу завозили. просто сам учебник старый
    flint2
    > Хочется в виде DB.
    просто сконвертируй весь html в бд
    и что такое "обратные деревья"?

    у тебя есть таблица с терминами. где хранится слово + описание к нему
    есть дополнительная таблица которая связывает термины между собой. (многие ко многим)

    #25
    (Правка: 22:19) 22:08, 30 янв 2023

    skalogryz
    > у тебя есть таблица с терминами. где хранится слово + описание к нему
    > есть дополнительная таблица которая связывает термины между собой.
    Никак нет!
    Ну читай же между строк: https://disk.yandex.ru/d/xRNQaaevQXqfnA
    skalogryz
    > (многие ко многим)
    Так точно!
    На палцах:
    "Шла девушка по улице с косой."
    Элементы дерева до листа 'коса'(выборочно):
    СОСТАВНАЯ ЧАСТЬ - ВЫСТУП, ВЫСТУПАЮЩАЯ ЧАСТЬ - МЫС БЕРЕГА - коса
    ПОСТОЯННАЯ СУЩНОСТЬ - АБСТРАКТНАЯ СУЩНОСТЬ - СВОЙСТВО, ХАРАКТЕРИСТИКА - ФОРМА, НАРУЖНЫЙ ВИД - ПРИЧЕСКА (ФОРМА ВОЛОС) КОСА ВОЛОС - коса
    ПОСТОЯННАЯ СУЩНОСТЬ - ФИЗИЧЕСКИЙ ОБЪЕКТ - ПРЕДМЕТ, ВЕЩЬ - ПРИСПОСОБЛЕНИЕ, ИНСТРУМЕНТ - СЕЛЬСКОХОЗЯЙСТВЕННОЕ ОРУДИЕ - коса
    Понятно излагаю?
    В тоже время, 'коса' является корнем дерева потомками которого являются элементы основного дерева, если идти вспять. Понятно, или где?
    Как это оформить - ума не приложу, чтоб лаконично.
    Пока n-связанные списки и из них деревья, но хочется-же DB!

    #26
    (Правка: 22:18) 22:14, 30 янв 2023

    flint2
    Дерево можно представить в таблице просто, указав в записях id родительского узла. Проблема только, что в такой форме почти ничего нельзя сделать с этим деревом через sql. Чтобы операции стали возможны, формируют вспомогательную вторичную таблицу, в которую вносят все возможные комбинации связей узлов, включая транзитивные.
    Да, это не соответствует правилам нормальных форм базы, создает уязвимость. Но на это вынуждены идти чтобы работать с деревьями.

    #27
    (Правка: 31 янв 2023, 3:10) 22:22, 30 янв 2023

    Zab
    Мне кажется, что ты, ты не услышал.
    Но проблема стоит как из пистолета. , не только у меня...
    Будем думать!
    P.S.

    что в такой форме почти ничего нельзя сделать с этим деревом через sql.

    Наверно ты прав, я сам дурак!
    Но мечтать ведь так приятно!
    Отвлечённо:
    Лучше ли по весне 17 соток вскопать лопатой, чем плуг придумывать(ведь каждую весну и 50 лет так - привыкаешь, а тем более трактор придумывать(купить(два не поднимутся и этот запорит - сын)) - сгниёт картошка на полях!

    Виноват, исправлюсь, может быть.
    Честь - имею!

    #28
    5:53, 31 янв 2023

    Zab
    > Дерево можно представить в таблице просто, указав в записях id родительского
    > узла. Проблема только, что в такой форме почти ничего нельзя сделать с этим
    > деревом через sql. Чтобы операции стали возможны, формируют вспомогательную
    > вторичную таблицу, в которую вносят все возможные комбинации связей узлов,
    > включая транзитивные.
    > Да, это не соответствует правилам нормальных форм базы, создает уязвимость. Но
    > на это вынуждены идти чтобы работать с деревьями.

    Элита всё может:

    ВЫБРАТЬ 
        Товары.Ссылка, 
        Товары.Артикул
    ИЗ Справочник.Товары КАК Товары
    ГДЕ 
        Товары.Ссылка В ИЕРАРХИИ(&Группа)

    vs

    ВЫБРАТЬ
        Номенклатура.Код,
        Номенклатура.Наименование КАК Наименование,
        Номенклатура.ЗакупочнаяЦена 
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        Номенклатура.Родитель = &Группа

    Второе вернёт только товары в конкретной группе (по сути фильтрация по Parent/Родитель), первое же вернёт само все вложенные товары и подгруппы.
    Или

    ВЫБРАТЬ
        Номенклатура.Код,
        Номенклатура.Наименование КАК Наименование,
        Номенклатура.ЗакупочнаяЦена 
    ИЗ
        Справочник.Номенклатура КАК Номенклатура 
    УПОРЯДОЧИТЬ ПО
        Наименование ИЕРАРХИЯ

    В этом случае сортировка по наименованию будет произведена внутри сортировки по иерархии вложенности в группы.
    А в таком варианте:

    ВЫБРАТЬ
        УчетНоменклатурыОбороты.Номенклатура КАК Номенклатура,
        УчетНоменклатурыОбороты.Номенклатура.Представление,
        УчетНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборот
    ИЗ
        РегистрНакопления.УчетНоменклатуры.Обороты КАК УчетНоменклатурыОбороты
    ИТОГИ СУММА(КоличествоОборот) ПО
       Номенклатура ИЕРАРХИЯ

    В результат будут добавлены не только строки сумм по каждой номенклатуре, но и по всем группам и подгруппам в которых каждая номенклатура лежит.
    Платформа сама конвертируя это в SQL добавляет промежуточные запросы чтобы выдёргивать и обрабатывать иерархию автоматически https://rarus.ru/publications/20220330-ot-ekspertov-postroenie-i-… ur-1c-525795/

    #29
    (Правка: 6:47) 6:25, 31 янв 2023

    =A=L=X=, ты насчёт TS?
    Там всё просто.
    Насчёт меня - ты не понял условия задачи.
    Zab понял.

    Как всё таки нас постояли, отмуштровали.

    Страницы: 1 2 3 418 Следующая »
    ПрограммированиеФорумОбщее