2012-01-02 8 views
2

複数の列値を選択して1つの列に連結しようとしています。私は、値が選択されている列でLIKEを実行したいと思います。しかし、それは動作していないようです。SQL Serverで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

+0

@lanks素晴らしい、喜んで助けて! –

関連する問題