lava-oushudb-dt-sql-parser/test/parser/impala/syntax/fixtures/update.sql
霜序 e203f1a48a
feat: support impala (#184)
* feat(impala): add impala sqlLexer

* feat(impala): add impala grammar

* feat(impala): add alter table sql

* feat(impala): update alter table sql

* feat(impala): add alter db sql

* feat(impala): add alter view sql

* feat(impala): add compute stats/comment statement and update partition_desc for alter table

* feat(impala): add drop statement sql

* feat(impala): add revoke and grant sql

* feat(impala): add create db/function/role/view sql

* feat(impala): add describe/explain/invalidata_metadata/load_data sql

* feat(impala): add refresh/set/shutdown sql

* feat(impala): add truncate_table/use/values sql

* fix(impala): update shutdown and invaliddate_metadata

* feat(impala): add show/update/upsert sql

* feat(impala): add create/insert sql

* feat(impala): add select and delete sql

* feat(impala): add impala tokens and fix todo

* feat(impala): update impalaparser and some test unit

* feat(impala): add syntax suggestion

* feat(impala): add syntax suggestion

* feat(impala): update test unit

* feat(impala): remove reference

* fix(impala): add statement for sqlname and collect tableName

* fix(impala): fix syntax suggestion unit test

* fix(impala): update syntax suggestion and collect column

* feat(impala): add collect column create
2023-11-28 21:11:07 +08:00

146 lines
1.7 KiB
SQL

/* UPDATE [database_name.]table_name SET col = val [, col = val ... ]
[ FROM joined_table_refs ]
[ WHERE where_conditions ] */
UPDATE
my_table
SET
col1 = 1,
col2 = 2,
col3 = 3;
UPDATE
my_db.my_table
SET
col1 = 1;
UPDATE
my_db.my_table
SET
col1 = 1
WHERE
col2 = 1;
UPDATE
my_db.my_table
SET
col1 = 1
WHERE
col2 = 1
AND col3 BETWEEN 100
AND 300;
UPDATE
my_table
SET
col1 = 'new_value'
FROM
other_table
WHERE
my_table.id = other_table.id;
UPDATE
my_table
SET
col1 = (
SELECT
MAX(col2)
FROM
other_table
WHERE
other_table.id = my_table.id
)
WHERE
col3 = 'value';
UPDATE
my_table
SET
col1 = CASE
WHEN col2 > 10 THEN 'High'
WHEN col2 > 5 THEN 'Medium'
ELSE 'Low'
END
WHERE
col3 = 'value';
UPDATE
my_table
SET
col1 = (
SELECT
AVG(col2)
FROM
other_table
WHERE
other_table.id = my_table.id
GROUP BY
other_table.id
)
WHERE
col3 = 'value';
UPDATE
my_table
SET
col1 = other_table.val1
FROM
my_table
JOIN other_table ON my_table.id = other_table.id
WHERE
my_table.col2 = 'value';
--example
UPDATE
kudu_table
SET
c3 = 'not applicable';
UPDATE
kudu_table
SET
c3 = NULL
WHERE
c1 > 100
AND c3 IS NULL;
UPDATE
kudu_table
SET
c3 = 'impossible'
WHERE
1 = 0;
UPDATE
kudu_table
SET
c3 = upper(c3),
c4 = FALSE,
c5 = 0
WHERE
c6 = TRUE;
UPDATE
kudu_table
SET
c3 = upper(c3)
FROM
kudu_table
JOIN non_kudu_table ON kudu_table.id = non_kudu_table.id;
UPDATE
t1
SET
c3 = upper(c3)
FROM
kudu_table t1
JOIN non_kudu_table t2 ON t1.id = t2.id;
UPDATE
t1
SET
c3 = upper(c3)
FROM
kudu_table t1
JOIN non_kudu_table t2 ON t1.id = t2.id
WHERE
c3 != upper(c3);