选择任何列作为名称

时间:2019-07-04 13:47:46

标签: sql-server

我想在select语句中使用列作为某名称并在where中使用。 (SQL Server)

我在SyBase中使用过:

SELECT
  'teste' as col1
  from sometable
  where col1 = 'teste'

有效!

在MySql中:

SELECT
  @col1:= 'teste'
  from sometable
  where @col1 = 'teste'

有效!

我需要在SqlServer中具有等效功能,但请显示错误消息col1不存在。

1 个答案:

答案 0 :(得分:0)

您可以使用子查询或CTE(这只是子查询的语法糖)来实现这一目标。

我不确定在Sybase中使用'@variable:=',因此基于注释中的对话,我只是忽略了它。

子查询:

SELECT
        col1
    FROM (
        SELECT
            'teste' AS col1
        --,st.*
        FROM sometable AS st
    ) s
    WHERE col1 = 'teste'

CTE:

WITH CTE
AS (
    SELECT
        'teste' AS col1
        --,st.*
    FROM sometable AS st
)
SELECT
        col1
    FROM CTE
    WHERE col1 = 'teste'