Sql 个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value
Sql 个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value ,sql,oracle,insert-into,Sql,Oracle,Insert Into,个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value ID | Value | Other | Other -------------- --------------------------------- 1
个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。
TableA TableB
ID |Value ID | Value | Other | Other
-------------- ---------------------------------
1 | ABC 1 | ABC | **** | ****
2 | DFG 2 | DFG | **** | ****
3 | HBO 3 | HBO | **** | ****
INSERT INTO TableB
(
ID,
Value,
Other,
Other
)
SELECT
ID,
(SELECT TABLEA.Value FROM TABLEA,TABLEB WHERE TABLEA.ID = TABLEB.ID),
******,
******
FROM TableA
WHERE ID IN
(
SELECT
TABLEA.ID
FROM
TABLEA
MINUS
SELECT
TABLEB.ID
FROM
TABLEB
)
MERGE INTO TableB
USING TableA
ON (TableB.id = TableA.id)
WHEN MATCHED
THEN
UPDATE
SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
THEN
INSERT
(
id,
POSITION,
other,
other,
other,
other,
other,
VALUE
)
VALUES
(
TableA.id,
(
SELECT POSITION
FROM TableC
WHERE something = '<String Value>'
AND VALUE =
(
SELECT VALUE
FROM TableA
WHERE TableA.id = <The Current 'ID'>
) ,
)
*****,
*****,
*****,
*****,
*****,
TableA.VALUE
);
MERGE INTO TABLEB tgt
USING TABLEA src
ON (tgt.ID = src.ID)
WHEN MATCHED
THEN
UPDATE
SET tgt.value = src.value
WHEN NOT MATCHED
THEN
INSERT (
ID
,VALUE
)
VALUES (
src.id
,src.value
);
INSERT INTO B
SELECT A.id, A.value
FROM A
FULL OUTER JOIN B ON A.id = B.id WHERE B.id IS NULL
MERGE INTO TABLEB tgt
USING TABLEA src
ON (tgt.ID = src.ID)
WHEN MATCHED
THEN
UPDATE
SET tgt.value = src.value
WHEN NOT MATCHED
THEN
INSERT (
ID
,VALUE
)
VALUES (
src.id
,src.value
);
MERGE INTO TableB
USING TableA
ON (TableB.id = TableA.id)
WHEN MATCHED
THEN
UPDATE
SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
THEN
INSERT
(
id,
POSITION,
other,
other,
other,
other,
other,
VALUE
)
VALUES
(
TableA.id,
(
SELECT POSITION
FROM TableC
WHERE something = '<String Value>'
AND VALUE = TableA.VALUE
) as position,
*****,
*****,
*****,
*****,
*****,
TableA.VALUE
);
MERGE INTO (SELECT * FROM TableB WHERE ID BETWEEN 1200 AND 1299) TableB
USING (SELECT * FROM TableA WHERE ID BETWEEN 1200 AND 1299) TableA
ON (TableB.id = TableA.id)
WHEN MATCHED
THEN
UPDATE
SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
THEN
INSERT
(
id,
POSITION,
other,
other,
other,
other,
other,
VALUE
)
VALUES
(
TableA.id,
(
SELECT POSITION
FROM TableC
WHERE something = '<String Value>'
AND VALUE = TableA.VALUE
) as position,
*****,
*****,
*****,
*****,
*****,
TableA.VALUE
);