Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
Дана таблица Table1 и ее схема Numb int NOT NULL, Code char( 8 ) NOT NULL. Поле Numb уникальное, а поле Code содержит повторяющиеся стойности, но не имеет больше чем 26 повторения одной и той же стойностю. Как мне надо написать лучшему образу T-SQL скрипт, который сперва модифицирует поле Code так, что все стойности были уникальными, если я заменю только первый символ буквой латинского альфавита? Например: Таблица Table1 имеет 3 ряда: Num,Code 1,A0000001 2,A0000001 3,A0000002 Как результат мне надо: Num,Code 1,A0000001 2,B0000001 3,A0000002 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 21:39 |
|
||
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
Лениво мне рыться в хелпе, но идеи у меня две: 1. Заменять в цикле записи, которых две и более а A+значение, B+значение,... 2. Написать курсор и шастать по записям, перебирая все буквы алфавита А что будет быстрее, сам решай!!!! На войне все средства хороши!!!! Главное - деньги, результат, скорость, оптимальность!!! Так МИКРОПУШИСТЫЙ пишет свои системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 23:12 |
|
||
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
Лениво мне рыться в хелпе, но идеи у меня две: 1. Заменять в цикле записи, которых две и более а A+значение, B+значение,... 2. Написать курсор и шастать по записям, перебирая все буквы алфавита А что будет быстрее, сам решай!!!! На войне все средства хороши!!!! Главное - деньги, результат, скорость, оптимальность!!! Так МИКРОПУШИСТЫЙ пишет свои системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2002, 23:14 |
|
||
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
Ну зачем же сразу цикл и курсор Если я правильно понял идею, то замена первого символа должна идет строго по порядку create table #table1(num int not null, code char(8 ) not null) insert #table1 values(1, 'A0000001') insert #table1 values(2, 'A0000001') insert #table1 values(3, 'A0000001') insert #table1 values(4, 'A0000002') insert #table1 values(5, 'A0000002') insert #table1 values(6, 'A0000003') /* select *, CHAR(ASCII(LEFT(a.code,1))+(a.num-a.a_num))+SUBSTRING(a.code, 2, 7) as code from (select b.num, b.code, min(a.num) as a_num from #table1 a inner join #table1 b on a.num < b.num and b.code = a.code group by b.num, b.code ) AS a */ UPDATE #table1 SET code = b.code from #table1 a inner join (select a.num, CHAR(ASCII(LEFT(a.code,1))+(a.num-a.a_num))+SUBSTRING(a.code, 2, 7) as code from (select b.num, b.code, min(a.num) as a_num from #table1 a inner join #table1 b on a.num < b.num and b.code = a.code group by b.num, b.code ) AS a ) AS b ON a.num = b.num select * from #table1 drop table #table1 ЗЫ При пропуске значеня в Num предложенный код будет также делать пропуски, т.е 1,A0000001 -->> 1,A0000001 3,A0000001 -->> 3,С0000001 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 07:25 |
|
||
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 11:50 |
|
||
|
Как мне надо написать?
|
|||
|---|---|---|---|
|
#18+
А так будет работать даже с пропусками в Num create table #table1(num int not null, code char(8 ) not null) insert #table1 values(1, 'A0000001') insert #table1 values(3, 'A0000001') insert #table1 values(5, 'A0000001') insert #table1 values(6, 'A0000003') UPDATE #table1 SET code = b.code from #table1 a inner join (select a.num, CHAR(ASCII(LEFT(a.code,1))+a.a_num)+SUBSTRING(a.code, 2, 7) as code from (select b.num, b.code, COUNT(a.num) as a_num from #table1 a inner join #table1 b on a.num < b.num and b.code = a.code group by b.num, b.code ) AS a ) AS b ON a.num = b.num select * from #table1 drop table #table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2002, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1823479]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 393ms |

| 0 / 0 |
