首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用ORDER之后,t-sql查询返回未定义的

在使用ORDER之后,t-sql查询返回未定义的
EN

Stack Overflow用户
提问于 2018-03-15 15:37:24
回答 2查看 784关注 0票数 0

我目前正在使用Windows2012Server上的MS数据库,我只需要从只有读取权限的表中查询一列,而不是进行任何更改。

问题是,列的名称是"Value“--我的代码如下:

代码语言:javascript
复制
SELECT 'Value' FROM table

如果我加上

代码语言:javascript
复制
`ORDER BY 'Value'` 

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

我已经尝试过了,

  • 我试着用“”替换',但这也不起作用。
  • 我还试着写SELECT *而不是SELECT VALUE
  • 在SELECT或ORDER子句中再次使用表名没有帮助
EN

回答 2

Stack Overflow用户

发布于 2018-03-15 15:39:00

您声称此查询:

代码语言:javascript
复制
SELECT 'Value'
FROM table
ORDER BY 'Value'

不会返回任何行。这并不完全正确。它返回一个错误,因为Server不允许常量表达式作为ORDER BY (或GROUP BY )的键。

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

代码语言:javascript
复制
SELECT 'Value' as val
FROM table
ORDER BY val;

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

代码语言:javascript
复制
SELECT t.Value
FROM table t
ORDER BY t.Value;

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

代码语言:javascript
复制
SELECT t.[Value]
FROM table t
ORDER BY t.[Value];
票数 2
EN

Stack Overflow用户

发布于 2018-03-15 18:59:16

看起来您的表中有空值。而且,由于顺序由所有的空值来优先。

尝试添加像这样的过滤器

代码语言:javascript
复制
select Value FROM table 
where Value is not null and Value <> ''
order by Value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49303594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档