Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование строки в сумму элементов / 3 сообщений из 3, страница 1 из 1
04.11.2002, 07:54:11
    #32064410
olegusan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в сумму элементов
Уважаемые коллеги.
Вот такая интересная задачка возникла:

Есть строка
@SS='ABCDBCADDCBA'

Каждая буква в строке имеет свое числовое значение,
определенное в таблице.
Например
A = 5
B = 8
C = 2
D = 0

Задача - получить арифметическую сумму строки @SS после подстановки значений вместо букв.

Важное условие:
Сумму нужно получит в 1 шаг/запрос. Т.е. нельзя применять временные таблицы явным образом.

Спасибо
...
Рейтинг: 0 / 0
04.11.2002, 10:03:30
    #32064433
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в сумму элементов
Надо иметь "опорную" таблицу со значениями чисел от 1 до "сколько надо". Тогда решение очевидно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
declare @nums table (i int)  -- лучше иметь такую постоянную таблицу
 
declare @i int
set @i= 1 
while @i< 20 
begin
  insert @nums select @i
  set @i=@i+ 1 
end

declare @chars table(c char( 1 ), what int)   -- это таблица кодов
 
insert @chars select 'A', 5  union select 'B', 8  union select 'C', 2  union select 'D', 0 


declare @ss varchar( 33 )
set @ss='ABCDBCADDCBA'
       -- 582082500285 select 5+8+2+0+8+2+5+0+0+2+8+5 для проверки
 

 -- это сам запрос
 
select sum(what)
from @chars c, @nums n
where c=substring(@ss, i,  1 ) 




...
Рейтинг: 0 / 0
06.11.2002, 00:07:54
    #32065150
olegusan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование строки в сумму элементов
Интересное решение.

Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразование строки в сумму элементов / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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