Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Функция, дописывающая 0 перед числами из одной цифры  [new]
leklerk
Member

Откуда:
Сообщений: 395
Добрый день! Подскажите пожалуйста, есть ли в SQL Server такая функция?
27 авг 12, 15:20    [13070315]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
leklerk
Добрый день! Подскажите пожалуйста, есть ли в SQL Server такая функция?
Речь идёт о текстовом представлении числа?
В SQL2012, если не ошибаюсь, есть функция FORMAT
А если другая версия, то
SELECT REPLACE(STR(5,2),' ','0');
27 авг 12, 15:29    [13070401]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
dfgfghghjghkjkkl;kl;
Guest
leklerk,

Возможно, мой метод неэффективен, но все же...

declare @t table (n int)
declare @b int=0
while @b<12
begin
set @b=@b+1
insert into @t (n) select @b
end
select right('0'+cast(n as varchar(2)),2) from @t
27 авг 12, 15:29    [13070402]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
UniqueNick
Member

Откуда: Москва
Сообщений: 42
SELECT
  [Было]  = i,
  [Стало] = RIGHT('00' + (convert(varchar(100), i)), 3)
FROM
(
  SELECT 1 AS i
  UNION
  SELECT 22
  UNION
  SELECT 333
) SQ
27 авг 12, 16:17    [13070927]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
leklerk,

SELECT CASE WHEN LEN(I) =1 THEN '0' ELSE '' END  + CONVERT(varchar(10), i)
FROM
(
  SELECT 1 AS i
  UNION
  SELECT 2
  UNION
  SELECT 3
  UNION
  SELECT 20
  UNION
  SELECT 33
  UNION
  SELECT 450
) TT


Ещё вариант, для случая много нулей перед числом
SELECT REPLICATE('0', 10 -LEN(I)) + CONVERT(varchar(10), i)
FROM
(
  SELECT 1 AS i
  UNION
  SELECT 2
  UNION
  SELECT 3
  UNION
  SELECT 20
  UNION
  SELECT 450
) YY
27 авг 12, 16:35    [13071095]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
iap
leklerk
Добрый день! Подскажите пожалуйста, есть ли в SQL Server такая функция?
Речь идёт о текстовом представлении числа?
В SQL2012, если не ошибаюсь, есть функция FORMAT
А если другая версия, то
SELECT REPLACE(STR(5,2),' ','0');

Так уже не будет работать
SELECT REPLACE(STR(33533,2),' ','0');
27 авг 12, 16:47    [13071210]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
trew
iap
пропущено...
Речь идёт о текстовом представлении числа?
В SQL2012, если не ошибаюсь, есть функция FORMAT
А если другая версия, то
SELECT REPLACE(STR(5,2),' ','0');

Так уже не будет работать
SELECT REPLACE(STR(33533,2),' ','0');
Читаем названгие темы: "Функция, дописывающая 0 перед числами из одной цифры"
27 авг 12, 16:51    [13071249]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
внимательно читаем вопрос
Guest
trew
iap
пропущено...
Речь идёт о текстовом представлении числа?
В SQL2012, если не ошибаюсь, есть функция FORMAT
А если другая версия, то
SELECT REPLACE(STR(5,2),' ','0');

Так уже не будет работать
SELECT REPLACE(STR(33533,2),' ','0');


>>>Функция, дописывающая 0 перед числами из одной цифры
27 авг 12, 16:52    [13071257]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
iap
trew
пропущено...

Так уже не будет работать
SELECT REPLACE(STR(33533,2),' ','0');
Читаем названгие темы: "Функция, дописывающая 0 перед числами из одной цифры"
То есть, в результате должно получиться число из двух цифр, первая из которых 0
27 авг 12, 16:52    [13071260]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
У меня родилось ещё одно вычурное решение (раз тут идёт такой конкурс, да ещё с баянами )
SELECT
 CASE 5
  WHEN 0 THEN '00'
  WHEN 1 THEN '01'
  WHEN 2 THEN '02'
  WHEN 3 THEN '03'
  WHEN 4 THEN '04'
  WHEN 5 THEN '05'
  WHEN 6 THEN '06'
  WHEN 7 THEN '07'
  WHEN 8 THEN '08'
  WHEN 9 THEN '09'
 END;
27 авг 12, 16:56    [13071290]     Ответить | Цитировать Сообщить модератору
 Re: Функция, дописывающая 0 перед числами из одной цифры  [new]
iap
Member

Откуда: Москва
Сообщений: 47105
iap
У меня родилось ещё одно вычурное решение (раз тут идёт такой конкурс, да ещё с баянами )
SELECT
 CASE 5
  WHEN 0 THEN '00'
  WHEN 1 THEN '01'
  WHEN 2 THEN '02'
  WHEN 3 THEN '03'
  WHEN 4 THEN '04'
  WHEN 5 THEN '05'
  WHEN 6 THEN '06'
  WHEN 7 THEN '07'
  WHEN 8 THEN '08'
  WHEN 9 THEN '09'
 END;
А ещё можно создать таблицу со всеми возможными требующимися представлениями чисел
(в данном случае двухзначных с лидирующим нулём) и написать из неё SELECT * WHERE ...!
27 авг 12, 17:00    [13071326]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить