Выберите значение второй строки происходит, перезаписать значение первой строки - PullRequest
0 голосов
/ 07 июня 2018
S.No   Name     Organization    
 1     Jhon       XXXx    
 2                zzzz

Я хочу, чтобы в качестве организации Джона был получен результат zzzz

, в то время как выберите таблицу против 'Jhon'. Я хочу, чтобы возвращаемое значение таблицы организации было ZZZZ. Я должен перезаписать старую организацию.

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Простой случай sql должен помочь вам определить, является ли имя jhon, а затем установить подходящую организацию как 'zzzz'. Если имя не является 'Jhon', тогда организации по умолчанию будет присвоено

select 
  name, 
  [organization] = case 
                     when name = 'Jhon' then 'zzzz' 
                     else organization 
                   end
from tablename
0 голосов
/ 07 июня 2018
drop table t
go
create table t (id int, name varchar(10), organisation varchar(10))
go
truncate table t
insert into t values
(1,'n1','o1'),(2,null,'o2'),(3, null, 'o3'),(4,'n2','o4'),(5,null,'o5')

Чтобы перезаписать нулевые имена предыдущим ненулевым именем, а затем использовать коррелированный подзапрос, чтобы найти предыдущее имя, будет выглядеть так:

select t.id,
(select t2.name from t t2 where t2.name is not null and t2.id = (select max(id) from t t3 where t3.name is not null and t3.id < t.id)) name, 
t.organisation 
from t
where name is null

result
id          name       organisation
----------- ---------- ------------
2           n1         o2
3           n1         o3
5           n2         o5

(3 row(s) affected)

И наоборот, чтобы найти следующую организацию

select t.id,t.name,
(select t2.organisation from t t2 where t2.name is null and t2.id = (select min(id) from t t3 where t3.name is null and t3.id > t.id)) organisation 
from t
where name is not null

Result
id          name       organisation
----------- ---------- ------------
1           n1         o2
4           n2         o5

(2 row(s) affected)

ОБА результаты соответствуют вашим требованиям (и, конечно, совершенно разные)

0 голосов
/ 07 июня 2018

Это то, что вы хотите ??

   update<tablename>
    set Name='JHON'
    where name is null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...