首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select AS temp_name FROM table WHERE temp_name =temp_name?

Select AS temp_name FROM table WHERE temp_name =temp_name?
EN

Stack Overflow用户
提问于 2010-06-20 13:21:13
回答 3查看 19.7K关注 0票数 5

您知道如何将临时列名分配给SQL语句中的返回值,如下所示?

代码语言:javascript
复制
SELECT something+this+that AS myvalue FROM mytable

是否可以使用临时名称myvalue作为条件?

代码语言:javascript
复制
SELECT something+this+that AS myvalue FROM mytable WHERE myvalue = 10

我似乎想不出这样做的语法。我知道如何做的唯一方法是重新编写整个列定义,如下所示:

代码语言:javascript
复制
SELECT something+this+that AS myvalue FROM mytable WHERE something+this+that = 10

显然,上面的例子是一个微不足道的例子。我需要对其执行此操作的查询非常复杂,因此为每个条件重写每个返回的列定义将是相当麻烦的。

那么,它的语法是什么呢?有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-20 13:28:45

使用派生表...

代码语言:javascript
复制
SELECT
    myvalue
FROM
    (
    SELECT something+this+that AS myvalue FROM mytable
    ) foo
WHERE
    myvalue = 10

或者使用CTE,它看起来更优雅,但也是一样的

代码语言:javascript
复制
;WITh myCTE AS
(
    SELECT something+this+that AS myvalue FROM mytable
)
SELECT
    myvalue
FROM
    myCTE
WHERE
    myvalue = 10

或计算列,因此它可以正常使用。

代码语言:javascript
复制
ALTER TABLE MyTable ADD myvalue AS something+this+that
票数 7
EN

Stack Overflow用户

发布于 2010-06-20 13:23:20

我不认为这是可能的,但您可以通过将数据放入一个临时表中,然后运行第二个查询来运行其余部分来作弊。

或者动态SQL,但我不喜欢后者。

票数 0
EN

Stack Overflow用户

发布于 2014-09-25 16:31:16

从mytable中选择something+this+that作为myvalue,其中myvalue = 10

你可以试着这样做:

代码语言:javascript
复制
SELECT something+this+that AS myvalue
FROM  `users` 
HAVING myvalue=10;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3078308

复制
相关文章

相似问题

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