Печатать строки звездочек, используя PostgreSQL? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь скопировать следующий код в SQL Сервер на PostgreSQL:

declare @row int = 1
while (@row < 6)
begin
    print replicate('* ', @row)
    set @row = @row + 1
end;

Требуемый вывод

* 
* * 
* * * 
* * * * 
* * * * *

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020

По возможности следует избегать петель. На SQL сервере вы можете использовать специальную c таблицу подсчета

Пример

Select Top (5) Stars=replicate('*',Row_Number() Over (Order By (Select NULL))) 
 From  master..spt_values n1

Возвраты

Stars
*
**
***
****
*****

РЕДАКТИРОВАТЬ - По убыванию

Select Stars = replicate('*',N)
 From (Select top (5) N=Row_Number() Over (Order By (Select NULL)) From  master..spt_values n1 ) A
 Order By N Desc
2 голосов
/ 14 апреля 2020

Вы можете использовать generate_series()

select rpad('*', i, '*')
from generate_series(1,5) as g(i)

Онлайн пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...