Member 13518187 Ответов: 2

Обновление запроса по одному столбцу на основе отрицательного значения


Нужно обновить столбец B на основе столбца A,
Условие - если столбец A(тип данных-Float) отрицателен, то поставьте знак -1 в столбце B и наоборот.

использование SQL Server 2014

Что я уже пробовал:

Случай если обновить запрос но не удалось извлечь отрицательный результат из столбца а

ОП-код из решения:
update v_table1 set ColumnB= case when ColumnA <0 then -1 when ColumnA >0 then 1 when ColumnA =0 then 0 else null end

Animesh Datta

вы что-нибудь пробовали ?
приложите свои усилия

Member 13518187

Не понимаю вот почему я пришел сюда спросить

Patrice T

А у тебя какой-нибудь код ?

2 Ответов

Рейтинг:
1

CHill60

Трудно понять, что именно вы пытаетесь сделать из этого.

Цитата:
Условие - если столбец A(тип данных-Float) отрицателен, то поставьте знак -1 в столбец B и наоборот
Код, который у вас уже есть, заключается в том, чтобы поставить ценность в ColumnB так и кажется работает, но вы уже ссылались на "знак".

Таким образом, если ColumnB является типом char, то вы, по-видимому, хотите
update v_table1 set ColumnB= case when Isnull(ColumnA,0) <0 then '-' when Isnull(ColumnA,0) >0 then '1' else '0' end
Заметьте, я достал ваш нуль.

Но если вы действительно хотите отрицать ColumnB на основе значения ColumnA, то вам нужно что-то вроде этого
update v_table1 set ColumnB= case when Isnull(ColumnA,0) <0 then -1 * ColumnB when Isnull(ColumnA,0) >0 then ColumnB else 0 end
Обратите внимание, что это будет работать только в том случае, если ColumnB еще не является отрицательным.

Если это не совсем то, что вы спрашивали, то используйте "есть вопрос или комментарий?" ссылка рядом с этим решением и я постараюсь помочь дальше


Рейтинг:
1

Member 13518187

обновление v_table1 установить столбца columnb= случай, когда Колумна в <0, то -1, если Колумна и gt;0 тогда 1 когда Колумна =0 тогда 0 иначе значение null конец


CHill60

Разместив свой код в качестве решения, вы удалили свой вопрос из списка неотвеченных сообщений. Рядом с вашим вопросом есть ссылка "улучшить вопрос", которую вы можете использовать, чтобы обновить его с помощью такой информации. На этот раз я сделаю это за вас, но я предлагаю вам удалить это решение