我遇到了很多关于SQL SELECT IF EXISTS的问题,但是我无法准确地拼凑出我需要的东西。
我要做的是从一个表中的行中选择特定数据(如果该行存在),否则使用默认值创建行,并在一次查询中对数据库执行所有操作。
我能够在数据库中创建该行(如果它尚不存在),如果它确实存在,则从行中选择数据,但是如果可能的话我想组合后两者。
所以,而不是这个: 1,使用SELECT检查行是否存在 2,如果行不存在INSERT 3,如果行确实存在SELECT再次获取数据
我想这样做: 1,使用select检查行是否存在,如果确实存在行,则在同一查询中获取所有数据 2,如果行不存在则插入行
我希望我能正确解释,并感谢大家的帮助,非常感谢!
答案 0 :(得分:1)
不完全确定这里的问题是什么。当然你想要的(伪代码)是:
qry ← execute("SELECT * FROM table WHERE ... FOR UPDATE")
if numrows(qry) > 0 then
row ← fetchdata(qry)
else
execute("INSERT INTO table VALUES (...)")
row ← ... // inserted data
end if
// use row
答案 1 :(得分:0)
IF Not EXISTS (SELECT * FROM ------)
BEGIN
--Insert HERE
END
ELSE
BEGIN
-- select HERE
END