2012-01-02 68 views
2

我想选择多个列值并将它们连接成一列。然后我想在选择值的列上运行一个LIKE。但它似乎并不奏效。sql server select与like连接?

这是我的SQL查询。

SELECT col1 + ' ' + col2 + ' ' + col3 AS colname 
FROM tblname 
WHERE 'colname' LIKE 'test%' 

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

回答

4
SELECT 
    col1 + ' ' + col2 + ' ' + col3 AS colname 
FROM tblname 
WHERE (col1 + ' ' + col2 + ' ' + col3) LIKE 'test%' 

或者

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

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

+0

真棒谢谢你。第一个完美的作品。 – startupsmith 2012-01-02 01:34:04

+0

@lanks很好,很高兴帮助! – 2012-01-02 01:34:36