2017-04-17 88 views
1
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 

錯誤說:Invalid Column name 'K1'爲什麼此查詢不工作,說無效列名

回答

2

union [all]結構列別名來自第一查詢,而不是最後一個。有移動你的別名,你應該確定:

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 
+0

現在它說函數'Round是被錯誤的參數調用的'' –

+1

@AnkitBajpai參數的**數字**似乎是正確的,但是您的查詢使用了字符串文字而不是數字文字。看到我編輯的答案。 – Mureinik

+0

Yupp現在正在工作。 –

0

的第一條記錄給列名,那麼它會採取相同的名稱爲休息的記錄。

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 
+0

現在,它是說,函數'調用錯誤的參數是錯誤的''' –

0

給別名爲第一列的第一行或第一列中的所有行 給別名:

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 
+0

現在它的意思是說函數'Round是用錯誤的參數調用的。' –

+0

@ AnkitBajpai,檢查你的查詢。上面的查詢工作正常。在這裏發佈你最後一次嘗試的查詢。 – Mansoor