我目前正在使用Windows 2012 Server上的MS SQL数据库 我只需要查询一个我只能读取的表中的一列,而不进行任何类型的更改。
问题是列的名称是"值" 我的代码是这样的:
SELECT 'Value' FROM table
如果我添加
`ORDER BY 'Value'`
问题是查询返回一个空的结果列表。
我已经尝试过的事情
'
而不是SELECT *
答案 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