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

Откуда: из-за границы
Сообщений: 2111
SQL 2000 SP4

T1 - table1
id S
1  ..
2  ..
3  ..
4  ..
........................

T2 - table2
id  S
1  aa
1  aaaa
1  aaa
2  b
2  bbbbb
2  bbbbbb
2  bbb
3  cccccc
3  ccccc
4  c


id поле связка

нужно сделать Update на поле S в T1 из T2 по соответсвующему id
при условии
выбрать нужно те тексты где LEN(S)=3
если таких нету то те тексты где LEN(S)=4
и только потом всё остальное

надеюсь я разумно смог обьяснить проблему

Спасибо
23 авг 09, 19:25    [7570832]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
ChA
Member

Откуда: Москва
Сообщений: 10989
michael R
надеюсь я разумно смог обьяснить проблему
Проблема-то в чём ? В написании запроса ? Что именно непонятно ? Обновлять одну таблицу данными из другой по связи умеете ? Примеры UPDATE в BOL смотрели ?
23 авг 09, 20:07    [7570886]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
EvAlex
Member

Откуда: Israel
Сообщений: 995
UPDATE T1 SET T1.S = T2.S FROM T2 WHERE T1.Id = T2.Id
UPDATE T1 SET T1.S = T2.S FROM T2 WHERE T1.Id = T2.Id AND LEN(T2.S) = 4
UPDATE T1 SET T1.S = T2.S FROM T2 WHERE T1.Id = T2.Id AND LEN(T2.S) = 3
23 авг 09, 20:12    [7570890]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2111
мда
всё таки не смог обьяснить проблему

update делать могу

мне нужно получить такой результат в один запрос

id   S
1    aaa
2    bbb
3    cccccc
4    с
................................

для id=1 длина текста 3 символа
для id=2 длина текста 3 символа
для id=3 для любой результат так как нет текста длины 3 или 4 символа
для id=4 любой результат так как нет текста длины 3 или 4 сивола
23 авг 09, 22:52    [7571050]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
ChA
Member

Откуда: Москва
Сообщений: 10989
michael R
не смог обьяснить проблему
UPDATE T1
SET T1.S = (
	SELECT TOP 1
		T2.S
	FROM T2
	WHERE T2.Id = T1.Id
	ORDER BY
		CASE
			WHEN LEN(T2.S) = 3 THEN -2
			WHEN LEN(T2.S) = 4 THEN -1
			ELSE LEN(T2.S)
		END
)
Где тут проблема-то ?
24 авг 09, 00:27    [7571168]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2111
нет результат другой
24 авг 09, 00:37    [7571177]     Ответить | Цитировать Сообщить модератору
 Re: Update поля по условию  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2111
нет прогнал я
вроде правильно работает

спасибо
счас проверять буду
24 авг 09, 00:41    [7571183]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить