Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664

Рекурсивное СТЕ

08.01.2025, 17:47. Показов 1675. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть таблица с такими данными.

где r_num - это нумерация битов, res_b - это логическое сложение бинарных чисел n1 и n2.
Можно ли с помощью рекурсивной cte собрать значение всех битов res_b в одну строку?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2025, 17:47
Ответы с готовыми решениями:

Рекурсивный СТЕ
Есть таблица план на месяц, которая состоит из списка изделий . Есть таблица состава изделий, каждое изделие состоит из множества сборок и...

СТЕ и left join
Суть вопроса в том что левое соединение рузультирует таблицу, которую можно получить только внутренним соединением в таблице КВ хранятся...

Рекурсивное неэквисоединение
Имею минимальное представление по SQL, и вот решил освежить в памяти да чего-то нового узнать. Вобщем иду сейчас по книге А. Бьюли...

11
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
08.01.2025, 19:23
Добавлено через 18 минут
а рекурсия зачем? cобери с помощью STRING_AGG и с помощью REPLACE грохни разделители
1
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664
23.01.2025, 13:47  [ТС]
Цитата Сообщение от Аватар Посмотреть сообщение
а рекурсия зачем?
Ну с помощью рекурсии мы же собирали в строку из бинарных значений
Цитата Сообщение от Аватар Посмотреть сообщение
а рекурсия зачем?
Чтобы собрать результирующие биты.
0
23.01.2025, 13:56

Не по теме:

Жалкая копия
Нестареющая классика

0
 Аватар для iLinks
799 / 457 / 237
Регистрация: 03.01.2017
Сообщений: 1,337
23.01.2025, 15:03
Что к чему вообще. Для чего/кого эта таблица. 450+32 = 48210 = 01111000102
Покопайте в сторону конвертации систем счисления в mssql
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
23.01.2025, 15:40
а нет в ms sql простой конвертации в двоичное представление.
но есть несколько способов достаточного сложного преобразования
1. в цикле деление по модулю 2. но циклы в sql не есть хорошо, больше для баловства а не серьезніх вещей
2. то же самое деление но рекурсивное
3. преобзазование в binary и затем каждую 16-тиричную цифру в двоичную тетраду. как по мне самый бестолковый способ )
4. еще есть что-то?
0
1302 / 356 / 97
Регистрация: 14.10.2022
Сообщений: 1,084
23.01.2025, 16:05
Цитата Сообщение от Аватар Посмотреть сообщение
4. еще есть что-то?
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @i TINYINT = 11
 
SELECT CONCAT (
         Cast(@i & 128 AS BIT)
        ,Cast(@i & 64 AS BIT)
        ,Cast(@i & 32 AS BIT)
        ,Cast(@i & 16 AS BIT)
        ,Cast(@i & 8 AS BIT)
        ,Cast(@i & 4 AS BIT)
        ,Cast(@i & 2 AS BIT)
        ,Cast(@i & 1 AS BIT)
        )
"Всё б им резать!!! Попрыгайте, сами отвалятся..." (С)
2
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
23.01.2025, 16:19
+ Ok. не додумался, для tinyint подойдет, для int не удобно - слишком много делений, для bigint спасайся кто может )

упс, не делений, булевого and
0
1302 / 356 / 97
Регистрация: 14.10.2022
Сообщений: 1,084
23.01.2025, 17:38
Цитата Сообщение от Аватар Посмотреть сообщение
+ Ok. не додумался, для tinyint подойдет, для int не удобно - слишком много делений, для bigint спасайся кто может )
упс, не делений, булевого and
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 Declare @i int = -100000000
 
 Select Case when @i>0 then '0' Else '1' END +
 String_agg(Cast(a.i & b.n as bit), '') within group (order by b.n DESC) [bin]
 from
 (Values (@i)) a(i)
 Cross join (Values 
 (1)
,(2)
,(4)
,(8)
,(16)
,(32)
,(64)
,(128)
,(256)
,(512)
,(1024)
,(2048)
,(4096)
,(8192)
,(16384)
,(32768)
,(65536)
,(131072)
,(262144)
,(524288)
,(1048576)
,(2097152)
,(4194304)
,(8388608)
,(16777216)
,(33554432)
,(67108864)
,(134217728)
,(268435456)
,(536870912)
,(1073741824)
) b(n)
0
 Аватар для iLinks
799 / 457 / 237
Регистрация: 03.01.2017
Сообщений: 1,337
23.01.2025, 18:07
Если доступен generate_series
T-SQL
1
2
3
4
5
6
DECLARE @i INT = -100000000;
 
SELECT 
    CASE WHEN @i > 0 THEN '0' ELSE '1' END +
    STRING_AGG(CAST((@i & POWER(2, n)) AS BIT), '') WITHIN GROUP (ORDER BY n DESC) AS [bin]
FROM GENERATE_SERIES(0, 30) g(n);
Если нет, рекурсией заполнить
T-SQL
1
2
3
4
5
6
7
WITH Numbers AS (
    SELECT 0 AS n
    UNION ALL
    SELECT n + 1
    FROM Numbers
    WHERE n < 30
)
0
74 / 18 / 6
Регистрация: 18.01.2025
Сообщений: 82
24.01.2025, 00:13
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
WITH CTE1 AS (
    SELECT 
        r_num,
        CAST(res_b AS VARCHAR(MAX)) AS res_b_combined
    FROM 
        TABLE
    WHERE 
        r_num = 1
 
    UNION ALL
 
    SELECT 
        t.r_num,
        CAST(r.res_b_combined + CAST(t.res_b AS VARCHAR(MAX)) AS VARCHAR(MAX))
    FROM 
        TABLE t
    INNER JOIN 
        CTE1 r ON t.r_num = r.r_num + 1
)
SELECT TOP 1 res_b_combined
FROM CTE1
ORDER BY r_num DESC
1
1302 / 356 / 97
Регистрация: 14.10.2022
Сообщений: 1,084
24.01.2025, 08:28
Цитата Сообщение от Аватар Посмотреть сообщение
а рекурсия зачем? cобери с помощью STRING_AGG и с помощью REPLACE грохни разделители
Ну, может у него 2008.
Там никакой string_agg нету.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2025, 08:28
Помогаю со студенческими работами здесь

Зачем и где нужен СТЕ ???
Зачем и где нужен СТЕ ПЛЗ???

Рекурсивное и не рекурсивное вычисление НОД
Здравствуйте! Имеется код вычисления НОД. Как сделать его рекурсивным и НЕ рекурсивным, и в чём отличие рекурсивного вычисления от...

Дано двузначное число k. Определить k-ю цифру последовательности 248163264128256. (сте-пени 2)
Не могу понять как задать последовательность степени 2. Пожалуйста,помогите!В интернете решения нет,есть со степенью 10,но это не то,все...

Проходит не все тесты Напишите программу, которая вводит натуральное число N и выводит на экран чётные положительные сте
Напишите программу, которая вводит натуральное число N и выводит на экран чётные положительные степени числа 2, не большие, чем 2 N , в...

Рекурсивное заполнение БД
Добрый день! Переношу базу данных с битрикса на OpenCart. В основном скриптами, в некоторых местах - вручную. Имеется таблица...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru