В настоящее время я пытаюсь решить задачу программирования SQL (создание структуры tri angular с использованием символов звездочки). Пример вывода ниже (3 строки);
* * *
* *
*
Я написал код, который, по моему мнению, должен работать (исходя из некоторого хобби C# опыта, поэтому я могу подойти к этому совершенно неверным образом). Тем не менее, мое использование функции REPLICATE()
, по-видимому, выводит указанный символ / строку только один раз, без фактической репликации.
Я предоставил свой текущий код здесь:
DECLARE @n INT = 3;
DECLARE @output NVARCHAR;
DECLARE @nextLine NVARCHAR;
DECLARE @char NVARCHAR = '* ';
WHILE @n > 0
BEGIN
SET @nextLine = REPLICATE(@char, @n);
SET @output = CONCAT(@output, @nextLine, CHAR(10));
SET @n = @n - 1;
END
PRINT TRIM(@output);
Ожидаемый вывод :
* * *
* *
*
Фактический токовый выход:
*
Для уточнения / повторения по-другому;
SELECT REPLICATE(@char, @n);
SET @output = REPLICATE(@char, @n);
SELECT @output;
1-й ВЫБОР, приведенный выше, возвращает ожидаемый результат (строка типа '* * * * ....'), однако, второй SELECT - при попытке установить его в качестве значения переменной сохраняет только одну звездочку (''). Почему?