Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么此查询不起作用并显示无效的列名_Sql_Select_Sybase_Union All - Fatal编程技术网

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