我想在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不存在。
答案 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'