我对需要更改的脚本中的以下 SQL 感到有些困惑:
...
WHERE
EXISTS (
SELECT
737
FROM
<table_name>
WHERE...
SELECT 语句的 737 部分是什么意思?它不能是列名(据我所知 DB2 不支持此),也不能是列索引(表“仅”有 74 列)。这可能是一个行计数器,意思是“给我正好 737 行”?这里根本没有意义......
SELECT 373 FROM <table_name>
将返回一行,其中有一个未命名的列,并且该单元格的值为“373”。
由于它包含在 EXISTS 语句中,该语句将检查是否有任何结果来自内部查询,因此返回什么并不重要。 从干净的代码角度来看,采用这样的数字是一个糟糕的选择,因为它对读者意味着某种意义 - 但实际上并不存在。相反,应该说 SELECT * 或 SELECT 1。