Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.04.2002, 12:22
|
|||
|---|---|---|---|
|
|||
хранимая процедура |
|||
|
#18+
Всем привет. У меня в процедуре есть входной параметр @a int. Нужно получить переменную @s char(6) по следующему условию: если, например @a=12, то @s=000012 и т.д. Как это реализовать на сервере? Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2002, 13:16
|
|||
|---|---|---|---|
|
|||
хранимая процедура |
|||
|
#18+
Хотел быстренько ответить: set @s=right('000000'+ltrim(cast(@a as char(6))),6) потом решил попробовать ! select right('0004321',2) select right('0004321',5) select right('0004321',9) ОК ! Далее select '000000'+cast(12 as char(6)) select right('000000'+cast(12 as char(6)),6) select right('000000'+cast(12 as char(6)),7) select right('000000'+cast(12 as char(6)), select right('000000'+cast(12 as char(6)),9) и глаза на лоб! Что же это за второй параметр !? а соответственно чудеса в declare @a int,@s char(6) set @a=12 select '000000'+cast(@a as char(6)) select right('000000'+cast(@a as char(6)),6) select right('000000'+cast(@a as char(6)),7) Так что не ответил ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2002, 13:27
|
|||
|---|---|---|---|
хранимая процедура |
|||
|
#18+
set @s = right('000000'+cast(@a as varchar), 6 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.04.2002, 12:08
|
|||
|---|---|---|---|
|
|||
хранимая процедура |
|||
|
#18+
2Glory Замечательно ! Все строчки отрабатывают правильно! Не могли бы Вы поделиться, в чем же все-таки дело, ведь с точки зрения других языков все должно работать идентично. А кстати, может еще где-то такие подарочки укрыты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.04.2002, 12:23
|
|||
|---|---|---|---|
хранимая процедура |
|||
|
#18+
Ничего хитрого здесь нет Дело в том, что при преобразованиие в char(6) происходит дополнение строки до заданной длины пробелами, причем пробелы добавляются справа. Т.е. cast(12 as char(6)) дает результат '12 ' (4 пробела). Понятно что right(@a, 6) берет первые 6 символов справа, включая пробелы. А cast(12 as varchar) дает строку без дополнительных пробелов Но для этого собственно и были "придуманы" такие типы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1823076]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 432ms |

| 0 / 0 |
