![](/img/trans.png)
[英]Returning data which is not found in where clause and didn't update in sql
[英]Is it possible to know which SQL WHERE clause didn't match?
當WHERE / AND子句不匹配時,我可以得到一些特定的錯誤消息嗎?
例如這樣的事情:
SELECT foo
FROM bar
WHERE date >= CURRENT_DATE /* if date < current date -> ERROR 1 */
AND name = 'John' /* if name not equal 'John' -> ERROR 2*/
我正在使用Postgres數據庫
用case
表達式針對每一行告訴您是否有效。
SELECT foo,
case when date < CURRENT_DATE then 'ERROR 1' end,
case when date <> 'John' then 'ERROR 2' end
FROM bar
您可以使用CASE
語句來做到這一點:
SELECT foo,
CASE WHEN date < current_date THEN 'ERROR 1' ELSE 'NO ERROR' END AS error_1,
CASE WHEN name != 'John' THEN 'ERROR 2' ELSE 'NO ERROR' END AS error_2
FROM bar;
我可能會想念smth,但是為什么每個人都提供兩列?
SELECT foo,
case
when date < CURRENT_DATE then 'ERROR 1'
when date <> 'John' then 'ERROR 2'
else 'OTHERS'
end
FROM bar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.