我正在尝试选择多个列值并将它们连接成一列。然后我想在选择值的列上运行LIKE。但它似乎没有用。
这是我的SQL查询。
SELECT col1 + ' ' + col2 + ' ' + col3 AS colname
FROM tblname
WHERE 'colname' LIKE 'test%'
此查询有什么问题?有更好的方法吗?
答案 0 :(得分: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
子句。您需要明确指出别名定义的内容,或使用子查询来抽象别名。