sql server select 与像连接?

sta*_*ith 2 sql sql-server select sql-server-2008

我正在尝试选择多个列值并将它们连接成一列。然后我想在选择值的列上运行 LIKE。但是,它似乎不起作用。

这是我的 SQL 查询。

SELECT col1 + ' ' + col2 + ' ' + col3 AS colname
FROM tblname
WHERE 'colname' LIKE 'test%'
Run Code Online (Sandbox Code Playgroud)

这个查询有什么问题?有一个更好的方法吗?

小智 5

SELECT 
    col1 + ' ' + col2 + ' ' + col3 AS colname 
FROM tblname 
WHERE (col1 + ' ' + col2 + ' ' + col3) LIKE 'test%'
Run Code Online (Sandbox Code Playgroud)

或者

select *
from
(
    SELECT 
        col1 + ' ' + col2 + ' ' + col3 AS colname 
    FROM tblname 
)a
WHERE colname LIKE 'test%'
Run Code Online (Sandbox Code Playgroud)

这是因为不能在WHERE子句中使用列别名。您要么需要明确指出别名定义的内容,要么使用子查询来抽象别名。