Sql 为什么此查询不起作用并显示无效的列名
错误说明Sql 为什么此查询不起作用并显示无效的列名,sql,select,sybase,union-all,Sql,Select,Sybase,Union All,错误说明无效列名“K1”为第一条记录指定列名,然后它将为其余记录使用相同的名称 SELECT ROUND(K1,2) FROM (SELECT '5.66666' UNION ALL SELECT '5.77777' UNION ALL SELECT '5.88888' UNION ALL SELECT '5.99999' UNION ALL SELECT '6.66666' UNION ALL SELECT '7.66666' UNI
无效列名“K1”
为第一条记录指定列名,然后它将为其余记录使用相同的名称
SELECT ROUND(K1,2)
FROM (SELECT '5.66666' UNION ALL
SELECT '5.77777' UNION ALL
SELECT '5.88888' UNION ALL
SELECT '5.99999' UNION ALL
SELECT '6.66666' UNION ALL
SELECT '7.66666' UNION ALL
SELECT '8.66666' UNION ALL
SELECT '9.66666' UNION ALL
SELECT '9.55555' UNION ALL
SELECT '6.88888' AS K1) K
union[all]
结构中的列别名来自第一个查询,而不是最后一个查询。将您的别名移动到那里,您应该可以:
SELECT ROUND(K1,2)
FROM (SELECT '5.66666' AS K1 UNION ALL
SELECT '5.77777' UNION ALL
SELECT '5.88888' UNION ALL
SELECT '5.99999' UNION ALL
SELECT '6.66666' UNION ALL
SELECT '7.66666' UNION ALL
SELECT '8.66666' UNION ALL
SELECT '9.66666' UNION ALL
SELECT '9.55555' UNION ALL
SELECT '6.88888') K
为第一列的第一行指定别名,或为所有行指定别名 第一列的第二行:
SELECT ROUND(K1,2)
FROM (SELECT 5.66666 AS K1 UNION ALL -- Here!
SELECT 5.77777 UNION ALL
SELECT 5.88888 UNION ALL
SELECT 5.99999 UNION ALL
SELECT 6.66666 UNION ALL
SELECT 7.66666 UNION ALL
SELECT 8.66666 UNION ALL
SELECT 9.66666 UNION ALL
SELECT 9.55555 UNION ALL
SELECT 6.88888) K
现在是说调用函数
Round时使用了错误数量的参数。
@AnkitBajpai,检查您的查询。上面的查询工作正常。在这里发布您上次尝试的查询。现在是说调用函数Round时使用错误数量的参数。
@AnkitBajpai参数数量似乎正确,但是您的查询使用的是字符串文本而不是数字文本。请参阅我编辑过的答案。@Mureinik,完美答案。现在是说调用函数Round时使用了错误数量的参数。
SELECT ROUND(K1,2)
FROM
(
SELECT '5.66666' AS K1 UNION ALL
SELECT '5.77777' AS K1 UNION ALL
SELECT '5.88888' AS K1 UNION ALL
SELECT '5.99999' AS K1 UNION ALL
SELECT '6.66666' AS K1 UNION ALL
SELECT '7.66666' AS K1 UNION ALL
SELECT '8.66666' AS K1 UNION ALL
SELECT '9.66666' AS K1 UNION ALL
SELECT '9.55555' AS K1 UNION ALL
SELECT '6.88888' AS K1
) K