2014-03-11 4 views
1

Я новичок в MS SQL.Как написать запрос MsSQl для этого scenerio

У меня была проблема в написании запроса для этого конкретного сценария Так может ли один помочь мне

У меня есть таблица, как

S.no Sender Recevier Function 
    1  s1  R1  Read 
    2  R1  S1  Read 
    3  S1  P1  Write 
    4  R1  w2  Read 

Я хотел бы обновить значения на основе следующих критериев

that is Select the Function Read Where (Sender = S1) OR (Receiver = S1) 

Что мне нужно Обновить значения Выбрав функцию И Пользователь может быть в Колонке или получателе отправителя. Как я могу это сделать.

Я trited как

Update Table1 Set Sender = Null, Receiver=Null Where Function = 'Read' And Sender = 's1'OR Receiver = 's1' 

Но я безуспешным Поэтому, пожалуйста, какой-либо один помочь мне, как решить эту проблему.

+1

Пожалуйста, сообщите об ошибке, которую вы получаете .., если @jpw не имеет права, что есть. – paqogomez

+2

На основе вашего описания предложение where должно быть .... Где 'Function' = 'Read' And (Sender = 's1' OR Receiver = 's1') - обратите внимание на скобки – Riz

+0

Я бы предположил, что функция« является » ключевое слово в MSSQL – Coderchu

ответ

4

Я предполагаю, что вы получите сообщение об ошибке Incorrect syntax near the keyword 'Function'.:, когда вы запустите это, потому что слово function является reserved keyword in T-SQL.

Попробуйте изменить его на:

Update Table1 Set Sender = Null, Receiver = Null 
Where [Function] = 'Read' And (Sender = 's1' OR Receiver = 's1') 

Вы можете изменить имя столбца, если это возможно, как использование зарезервированного слова никогда не является хорошей идеей.

Образец SQL Fiddle demo.

+0

Ho спасибо Это работает сейчас для меня И уверен, что я изменю свою колонку Имя – user2787300

+0

@ user2787300 С удовольствием :) – jpw

Смежные вопросы