Таблица: Dots
SQL Server 2008 R2: Обновление с условием
CREATE TABLE dots
(
cola VARCHAR(50),
NAME VARCHAR(10),
);
Вставка:
INSERT INTO dots VALUES('59.96.12.563','');
INSERT INTO dots VALUES('594.966.127.5683','');
INSERT INTO dots VALUES('5998.8896.4412.22563','');
INSERT INTO dots VALUES('791','');
INSERT INTO dots VALUES('891','');
INSERT INTO dots VALUES('691','');
Примечание: Теперь я хочу, чтобы обновить NAME
столбец в таблице Dots
к значению IP
для тех записей, которые содержат 3 точки на нем в colu mn Cola
. Например, как показано ниже в ожидаемом результате.
Результат:
Cola NAME
--------------------------------
59.96.12.563 IP
594.966.127.5683 IP
5998.8896.4412.22563 IP
791
891
691
Это не безопасный способ подсчета точек в тексте. Это не удастся, если текст заканчивается пробелом и точкой. Разделение на LEN ('.'), Равное 1, также кажется ненужным. –
@ t-clausen.dk - в соответствии с моим разделом потребуется разделение, потому что каждый раз, когда мы обнаруживаем появление '.' мы удалим 1 символ аналогично, когда мы удалим 2 символа, мы нашли '.' дважды. Также я думаю, что 'LEN (REPLACE (cola, '.', '.X') - LEN (cola)) = 3' выдаст ошибку -' Conversion failed при преобразовании значения varchar в тип данных int' – Abhishek
reason он потерпел неудачу, был исправлен неверно. Мое решение будет решать проблему с заменой большего количества писем. Попробуйте подсчитать вхождения пространства с вашим синтаксисом. Деление на ноль. Это то, что я пытаюсь объяснить. Ваш синтаксис не может быть доверен –