Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Нужна помощь Такое задание Даны два параметра: @1 @2 Первый параметр это количество чисел Второй параметр это число, которое с помощью сумму количества чисел получить это число Например @1 - 2 @2 - 8 Результат: 1 7 2 6 3 5 4 4 5 3 6 2 7 1 Нужно написать это с помощью MySQL. Мысль такая у меня создать таблицу, которая в зависимости от первого параметра создаёт новые столбцы и заносит туда сразу значения, которые будут удовлетворять результату(8).Но как это сделать. Помогитее! Либо @1 - 4 @2 - 10 1 2 3 4 2 3 4 1 3 .. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 14:49 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowНужно написать это с помощью MySQL.Ну а зачем тогда было в MS SSql тему создавать? JonsnowМысль такая у меня создать таблицу Фигня мысль... достаточно обычного CTE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 14:58 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Akina, Нужно это написать на microsoft sql server management studio перепутал Можно по подробнее? Пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 15:15 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Поковыряться действительно оказалось интересно... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. fiddle Вот только глубина рекурсии получается офигительная... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 15:32 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowНужно это написать на microsoft sql server management studio перепутал Ааа... ну тады пусть тут остаётся. Посмотри, разберись, адаптируй, буде не лень. Хотя алгоритм далёк от оптимального. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 15:34 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
AkinaПоковыряться действительно оказалось интересно... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. fiddle Вот только глубина рекурсии получается офигительная...Как минимум, в MSSQL нет RECURSIVE Хотя, было бы очень полезно. Упростило бы мучительное разглядывание CTE в поисках рекурсии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 15:47 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
iapКак минимум, в MSSQL нет RECURSIVE Хотя, было бы очень полезно. Упростило бы мучительное разглядывание CTE в поисках рекурсии... Вот не могу не поддержать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 16:22 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowAkina, Нужно это написать на microsoft sql server management studio перепутал Можно по подробнее? Пожалуйста скоро иссякнут интересные вопросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 16:25 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Что делать тогда, если resursive нет? Как быть? Может кто ещё подскажет решение этого задания? Спасибо, что помогаете, но решение какое т сложноватое на первый взгля:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:38 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Akina, Что делать тогда, не получается?(RECURSIVE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 00:35 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowЧто делать тогда, если resursive нет? Как быть? Может кто ещё подскажет решение этого задания? Спасибо, что помогаете, но решение какое т сложноватое на первый взгля:(С RECURSIVE всё просто - в MSSQL просто его не писать! В скрипте Akina есть и другие неточности - например, в MSSQL нет функции LENGTH. Зато есть LEN() и DATALENGTH(). Найдите в микрософтовсом хэлпе. И про рекурсивное CTE - там же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 15:11 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
iap, Спасибо большое, сейчас буду пробовать это как-то сделать, а таблицы же создавать тоже нужно ? Может знаете оптимальное решение какое-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 18:50 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Jonsnow, Ничего не работает( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 19:02 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Jonsnow, Msg 4145, Level 15, State 1, Line 82 Рядом с "THEN" в контексте, где ожидается условие, указано выражение типа, отличного от логического. Msg 156, Level 15, State 1, Line 84 Неправильный синтаксис около ключевого слова "ORDER". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 20:34 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Jonsnow, ВОТ МОЁ Решение, но оно не практично, так как только для одного случая работает Код: 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. Результат Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2019, 21:52 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowJonsnow, ВОТ МОЁ Решение, но оно не практично, так как только для одного случая работает да, не то слово. А на кого вы собрались выучиться если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 09:10 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
iapКак минимум, в MSSQL нет RECURSIVE КесарьВот не могу не поддержать! iapВ скрипте Akina есть и другие неточности - например, в MSSQL нет функции LENGTH. Зато есть LEN() и DATALENGTH(). Други мои! Товарищ изначально написал, что MySQL. Я делал именно под MySQL - в надежде, что тема будет перенесена. То, что ему таки нужен MS SQL, я увидел лишь после публикации решения для MySQL (что видно по следующему после решения посту, кстати). Что ж вы так прям на меня все набросились-то? Ей-ей, не со зла! Тем более что вся адаптация и сводится к удалению лишнего с точки зрения SQL Server слова да замене имён функций... ерунда же ж. На алгоритм (и на его "вымороченность", впрочем) это никак не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 09:29 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо большое, вот только когда переделываю до mssql, но высверливаются такие ошибки как Msg 4145, Level 15, State 1, Line 82 Рядом с "THEN" в контексте, где ожидается условие, указано выражение типа, отличного от логического. Msg 156, Level 15, State 1, Line 84 Неправильный синтаксис около ключевого слова "ORDER". Очень благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 09:40 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Jonsnow, Вот через таблицу решение в "лоб". Чем больше кол-во чисел тем дольше обработка. declare @icount int, @isum int declare @step int, @massbegin int, @massend int declare @str nvarchar(max), @ch nvarchar(max), @pos int, @length int declare @sql nvarchar(MAX), @colname nvarchar(20), @mass_col nvarchar(max), @mass_sum nvarchar(max) Set @icount=4 Set @isum=10 Set @step=1 SET @massbegin=1 SET @mass_col='' SET @mass_sum='' if (not object_id('tempdb..#tab1') IS NULL) drop table #tab1 Create table #tab1 (mass_sum int) While @step<@icount begin SET @massbegin=@massbegin*10 SET @massbegin=@massbegin+1 SET @step=@step+1 end SET @massend=@massbegin*9 Set @step=1 While @step<=@icount begin SET @colname='col'+CONVERT(nvarchar(17),@step) SET @sql = 'Alter Table #tab1 ADD '+@colname+' int' EXEC (@SQL) SET @step = @step+1 SET @mass_col=@mass_col+@colname+',' SET @mass_sum=@mass_sum+@colname+'+' end SET @mass_col = LEFT(@mass_col,LEN(@mass_col)-1) SET @mass_sum = LEFT(@mass_sum,LEN(@mass_sum)-1) While @massbegin<=@massend begin SET @str = CONVERT(nvarchar(max),@massbegin) IF PATINDEX('%0%',@str)=0 begin SET @length=LEN(@str) SET @pos=@length SET @step=1 While @step<@icount begin SET @str = STUFF(@str,@pos,0,',') SET @pos=@pos-1 SET @step=@step+1 end SET @sql = 'INSERT INTO #tab1(mass_sum,'+@mass_col+') VALUES('+CONVERT(char,@isum)+','+@str+')' EXEC(@sql) end SET @massbegin=@massbegin+1 end SET @sql='Select * FROM #tab1 WHERE '+@mass_sum+'=mass_sum' EXEC(@sql) DROP table #tab1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 10:13 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
Модератор: Так что именно надо: MSSQL или MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 10:28 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
ну если на входе просто числа 0-9 то это просто Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 10:38 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
С дубликатами и разделением не заморачивался, для студента и так сойдет. Код: 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 10:44 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
TaPaK, или проще, можно добавить что бы не все разряды учитывало, но мне лень Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 11:15 |
|
||
|
Интересное задание по SQL
|
|||
|---|---|---|---|
|
#18+
JonsnowЧто делать тогда, если resursive нет? Как быть? Может кто ещё подскажет решение этого задания? Спасибо, что помогаете, но решение какое т сложноватое на первый взгля:( Один из путей такой: написать в поддержку SQL Server и указать на этот недостаток, они могут даже быстро исправить. Важно указать, что, мол, очень важная возможность для запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2019, 14:13 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=99&tid=1687697]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 354ms |

| 0 / 0 |
