我可以对IP地址进行排序,但是当另一个表之间的联合时,它会给我一个错误

时间:2017-04-27 01:19:47

标签: sql-server

我想在两个包含IP地址的表之间进行组合,我可以按升序对其进行排序,它可以正常工作。但是当我想要组合它时,它会像这样解析错误“如果语句包含UNION,INTERSECT或EXCEPT运算符,ORDER BY项必须出现在选择列表中。”这是我的查询

public static void main (String[] args) { Scanner scan = new Scanner(System.in); Scanner web = null; while (true) { try { String input = scan.nextLine(); URL url = new URL(input); web = new Scanner(url.openStream()); break; } catch (MalformedURLException e) { System.out.println("error occurred: " + e); } catch (IOException e) { System.out.println("error occurred: " + e); } } if (web != null ) { // do something with 'web' } }

2 个答案:

答案 0 :(得分:0)

它认为你想要对你不能用联合做的第二个子查询进行排序。如果要对整个事物进行排序,则应将其包装在括号中,并按您创建的新列名进行排序。

(      选择IP AS [IP地址]            来自库存    UNION ALL     SELECT IP FROM Equip     )     按照过程订购(' /' + [IP地址] +' /'作为hierarchyid)

答案 1 :(得分:0)

没问题,我找到了解决方案,这里是.. SELECT IP FROM(选择IP来自库存UNION ALL SELECT IP FROM Equip)x ORDER BY CAST(' /' + IP + ' /' AS hierarchyid)