使用ORDER BY后,t-sql查询返回undefined

时间:2018-03-15 15:37:24

标签: sql sql-server tsql

我目前正在使用Windows 2012 Server上的MS SQL数据库 我只需要查询一个我只能读取的表中的一列,而不进行任何类型的更改。

问题是列的名称是"值" 我的代码是这样的:

SELECT 'Value' FROM table

如果我添加

`ORDER BY 'Value'` 

问题是查询返回一个空的结果列表。

我已经尝试过的事情

  • 我尝试将<{1}} 替换为`&#34;&#39;但这也不起作用。
  • 我也试过写'而不是SELECT *
  • 再次使用SELECT或ORDER子句中的表名称没有帮助

2 个答案:

答案 0 :(得分:2)

您声称此查询:

SELECT 'Value'
FROM table
ORDER BY 'Value'

没有返回任何行。这不太正确。它返回一个错误,因为SQL Server不允许常量表达式作为ORDER BY(或GROUP BY的关键字)。

不要使用单引号。在这种情况下:

SELECT 'Value' as val
FROM table
ORDER BY val;

或者,如果value是表格中的一列:

SELECT t.Value
FROM table t
ORDER BY t.Value;

Value不是SQL Server中的保留字,但如果是,则可以将其转义:

SELECT t.[Value]
FROM table t
ORDER BY t.[Value];

答案 1 :(得分:0)

看起来你的表有空值。并且由于所有空值的顺序排在第一位。

尝试添加像这样的过滤器

select Value FROM table 
where Value is not null and Value <> ''
order by Value