Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выравнивание по правому краю / 14 сообщений из 14, страница 1 из 1
17.09.2019, 16:47
    #39862967
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Прошу помочь выровнять результаты SQL запроса по правому краю.
В результате запроса данные выходят в таком виде:
1345.23
23.00
343243.23
9092037283.25
Нужно упорядочить таким образом, чтобы дробные под дробными, единицы под единицами, десятки под десятками и т.д

Спасибо
...
Рейтинг: 0 / 0
17.09.2019, 16:50
    #39862969
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
botan131,

непонятно в каком " таком виде", но добавить нулями и вперёд
...
Рейтинг: 0 / 0
17.09.2019, 16:53
    #39862971
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Попросите средство ОТОБРАЖЕНИЯ выравнивать этот столбец по правому краю.
...
Рейтинг: 0 / 0
17.09.2019, 16:56
    #39862974
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
В крайнем случае

Код: sql
1.
SELECT RIGHT(CONCAT(REPLICATE(CHAR(32), 20), STR(field)), 20), ...



20 символов, есссно, от фонаря.
...
Рейтинг: 0 / 0
17.09.2019, 17:29
    #39862996
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
AkinaВ крайнем случае

Код: sql
1.
SELECT RIGHT(CONCAT(REPLICATE(CHAR(32), 20), STR(field)), 20), ...



20 символов, есссно, от фонаря.
А потом вспоминаем, что шрифт у нас не моноширинный, расстраиваемся, и бросаем эту затею.
...
Рейтинг: 0 / 0
17.09.2019, 17:36
    #39863004
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Minamoto,
к сожалению Вы правы. Этот способ создает кривизну другого рода.
...
Рейтинг: 0 / 0
17.09.2019, 17:38
    #39863006
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Akina,
Средство отображения - программа SQL Client под Андроидом, она не позволяет манипулировать результатами.
...
Рейтинг: 0 / 0
17.09.2019, 17:46
    #39863016
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
бред конечно, но вот так можно:

Код: sql
1.
2.
3.
4.
5.
declare @t table (data decimal(16,2));
insert into @t(data)
values (1345.23), (23.00), (343243.23), (9092037283.25);

select RIGHT(REPLICATE('_', 20) + convert(varchar(20), t.data), 20) as summa from @t t
...
Рейтинг: 0 / 0
17.09.2019, 17:50
    #39863021
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
botan131Akina,
Средство отображения - программа SQL Client под Андроидом, она не позволяет манипулировать результатами.
Собственно, это ответ на ваш вопрос. Не имея доступа к управлению отображением, вы не можете гарантировать отображение.
Для ваших целей нужно изменение именно на уровне отображения - в идеальном варианте - полный доступ и реализация нужного вида, в усеченном - хотя бы моноширинный шрифт, который позволяет обеспечить одинаковую ширину символов.

Все остальное - дикие костыли, можете попробовать подсчитать ширину каждого имеющегося у вас символа при отображении и "добивать" неотображаемыми символами, пробелами, например, до нужной ширины. Но это будет работать на вашем конкретном устройстве, т.е. это абсолютно неуниверсальное решение.
...
Рейтинг: 0 / 0
17.09.2019, 18:05
    #39863029
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Konst_Oneбред конечно, но вот так можно:

Код: sql
1.
2.
3.
4.
5.
declare @t table (data decimal(16,2));
insert into @t(data)
values (1345.23), (23.00), (343243.23), (9092037283.25);

select RIGHT(REPLICATE('_', 20) + convert(varchar(20), t.data), 20) as summa from @t t


Тогда уж так:
Код: sql
1.
select REPLICATE('  ', MAX(LEN(data)) OVER ()-LEN(CAST(data AS varchar(max)))) + convert(varchar(max), t.data) as summa from @t t



Сработает для студии, т.к. там размер пробела ровно в 2 раза меньше числа, а размер чисел не отличается. Но сработает ли для приложения ТС - большой вопрос.
...
Рейтинг: 0 / 0
17.09.2019, 18:26
    #39863044
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Konst_One,

спасибо. В таком виде работает.
...
Рейтинг: 0 / 0
18.09.2019, 16:21
    #39863417
PsyMisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
botan131,

Ужс какой-то! А потом недоумеваем, почему у нас приложение так отжирает ресурсы у телефона и вообще все лагает и глючит!
...
Рейтинг: 0 / 0
18.09.2019, 16:23
    #39863418
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
PsyMishabotan131,

Ужс какой-то! А потом недоумеваем, почему у нас приложение так отжирает ресурсы у телефона и вообще все лагает и глючит!
да! особенно когда это на серевреной части!
...
Рейтинг: 0 / 0
18.09.2019, 17:33
    #39863469
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выравнивание по правому краю
Сервер не должен заниматься отображением. Совсем. Это дело клиентской программы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выравнивание по правому краю / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]