gpt4 book ai didi

sql - ALTER TABLE WHERE 子句

转载 作者:行者123 更新时间:2023-12-01 11:36:40 25 4
gpt4 key购买 nike

我对 DDL 不是很熟悉。我假设它们是 ALTERWHERE 子句,经过一些研究后我现在明白 WHERE 子句不存在ALTER 命令。如何处理我们可能需要在 ALTER 命令中检查某些条件的情况?

Mysql Drop column where all row value is null

例如,对于上面的问题,如果我想写类似下面的代码,我该怎么做呢?

ALTER TABLE my_table DROP col
WHERE NOT EXISTS (SELECT * FROM my_table
WHERE col IS NOT NULL)

是否有任何标准的 SQL 方法可以实现此目的?如果没有,谁能提供针对各种数据库(SQL Server、MySQL、Oracle、PostgreSQL)执行此操作的方法?

最佳答案

您不能只删除表中某些行的列。该表要么有该列,要么没有。这就是为什么 ALTER 没有 WHERE 子句的原因。

听起来您似乎希望仅当表中的所有值都为 NULL 时才删除此列。您需要的是 IF 语句。

更新:

SELECT CASE 
WHEN NOT EXISTS (SELECT * FROM my_table WHERE col IS NOT NULL)
THEN 'Y'
ELSE 'N'
END AS my_result

IF my_result = 'Y'
ALTER TABLE...

关于sql - ALTER TABLE WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com