Sql 根据选择的查询值执行查询
如何实现以下查询-Sql 根据选择的查询值执行查询,sql,sql-server-2000,Sql,Sql Server 2000,如何实现以下查询- SELECT CASE WHEN COUNT(*) > 0 THEN -- UPDATE operation ELSE -- INSERT operation END AS [RESULT] FROM [TABLE_1] WHERE [CONDITION] 我正在使用SQLServer2000。 有人能帮我吗?到目前为止,最简单的方法是进行两个单独的查询,例如: IF
SELECT
CASE
WHEN COUNT(*) > 0 THEN
-- UPDATE operation
ELSE
-- INSERT operation
END AS [RESULT]
FROM
[TABLE_1]
WHERE
[CONDITION]
我正在使用SQLServer2000。
有人能帮我吗?到目前为止,最简单的方法是进行两个单独的查询,例如:
IF (SELECT COUNT(*) FROM [TABLE_1]) > 0
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
ELSE
INSERT INTO [TABLE_1] (X) VALUES (Y)
到目前为止,最简单的方法是使用两个单独的查询,例如:
IF (SELECT COUNT(*) FROM [TABLE_1]) > 0
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
ELSE
INSERT INTO [TABLE_1] (X) VALUES (Y)
根据我的回答
IF EXISTS (SELECT * FROM [TABLE_1])
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
ELSE
INSERT INTO [TABLE_1] (X) VALUES (Y)
如果您希望更新的比例非常高,那么为什么要触摸该表两次呢
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
IF @@ROWCOUNT = 0
INSERT INTO [TABLE_1] (X) VALUES (Y)
对于SQL Server 2000上非常高比例的插入,您不能执行相同的操作:根据我的答案
IF EXISTS (SELECT * FROM [TABLE_1])
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
ELSE
INSERT INTO [TABLE_1] (X) VALUES (Y)
如果您希望更新的比例非常高,那么为什么要触摸该表两次呢
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
IF @@ROWCOUNT = 0
INSERT INTO [TABLE_1] (X) VALUES (Y)
对于SQL Server 2000上非常高比例的插入,您不能这样做:根据我的回答,我实际使用的是EXISTS而不是count我实际使用的是EXISTS而不是count
IF EXISTS (SELECT * FROM [TABLE_1])
UPDATE [TABLE_1] SET X = Y WHERE [CONDITION]
ELSE
INSERT INTO [TABLE_1] (X) VALUES (Y)