我需要一個存儲過程,根據條件更新表上的錯誤消息列,如果dob爲null或大於當前日期,那麼錯誤消息列應該更新爲'invalid dob '並且還基於它必須被更新的id,如果dob小於當前日期並且它不爲空,則不應該更新錯誤消息列。我需要這個查詢的更新語句,我試過了,但它沒有檢查條件就更新了所有的列。所以請爲此查詢提供解決方案,謝謝。根據條件需要更新查詢
回答
奇怪的要求,但它非常簡單。
update SomeTable
set ErrorMessage = 'Invalid DOB'
where DOB is null
or DOB > getdate()
如果我使用條件eid = eid,那麼它會更新所有列而不檢查條件,它爲什麼會發生? – Ram
你爲什麼要包含謂詞?這就像說1 = 1。所有的行都符合這個標準。除非希望更新所有行,否則請使用where子句僅允許要更新的行更新。 –
此代碼是基於設置的。它將在沒有循環或遊標的情況下更新所有相關行。 –
嘗試這樣的事情,
create table TestEmployee (ID int, DOB DateTime, ErMsg varchar(20))
insert into TestEmployee (ID,DOB)
values (1, '10/02/2013'),
(2, null),
(3, '1/1/2016')
UPDATE TestEmployee SET ErMsg = 'Invalid DOB'
WHERE ID = @ID AND --This should based on your condition
DOB > GETDATE() OR DOB IS NULL
SELECT * FROM TestEmployee
我使用循環條件將值插入到該表中,因此,而不是使用@id,我可以直接定義類似id = id的內容嗎? – Ram
請在這裏發佈您的整個SP。 –
@Ram爲什麼你使用循環來進行這樣的更新? –
- 1. 根據多個條件更新查詢
- 2. 寫入更新根據某些條件更新列的查詢
- 3. 根據條件刪除不需要的SQL查詢
- 4. 查詢時需要根據條件從表2
- 5. 更新 - 根據條件
- 6. 如何根據條件進行更新或刪除查詢?
- 7. 我需要根據條件插入行
- 8. SQL查詢條件更新
- 9. 需要根據時區更改Oracle sql查詢
- 10. 根據條件更新mysql數據庫
- 11. MySQL查詢優化和更新需要
- 12. 需要幫助與sql更新查詢
- 13. 我需要根據某些條件重新路由動作
- 14. 根據一些條件查詢表
- 15. 查詢根據列條件返回行
- 16. MySQL查詢根據多個條件
- 17. Sql根據條件刪除查詢
- 18. 根據條件篩選查詢
- 19. ElasticSearch根據條件構建查詢
- 20. 根據條件SQL查詢連接
- 21. Django - 根據查詢更新或插入
- 22. 單個查詢更新根據ID
- 23. 如何根據條件更新原子?
- 24. 根據條件依次更新一列
- 25. 如何根據條件更新行
- 26. 如何根據條件更新記錄?
- 27. 根據條件更新SQL表。
- 28. SQL:根據條件更新特定行
- 29. 根據條件更新聲明
- 30. 如何根據條件更新列
能否請您發佈一些樣本數據,預期輸出,無論您有試過嗎? –
update e set errormsg ='invalid dob'from emp e where eid = eid and exists(select'x'from emp where dob> getdate()or dob is null) – Ram
請更新原始文章。同時發佈預期的輸出。 –