2017-03-20 2 views
1

私はMSSQLサーバーを使用しています。私がしようとしているのは、同じテーブルの3つのカラムを1つの結果に連結することで、結果にWHERE句を使用することができます。MSSQL 3つの列を連結してWHEREを使用します

これは私が実行したいコマンドです:

select col1 + col2 + col3 as result from table where result like '%term%'

私はInvalid column name 'result'

で打た続けるしかし、私は列を連結についての答えをたくさん見てきましたが、どれを使用するように見えるんそれらのWHERE節。

おかげ

答えて

2

結果を返し、返された列を検索するために、この

SELECT col1 + col2 + col3 AS result 
FROM TABLE 
WHERE col1 LIKE '%term%' 
    OR col2 LIKE '%term%' 
    OR col3 LIKE '%term%' 

OR

SELECT * 
FROM (
    SELECT col1 + col2 + col3 AS result 
    FROM TABLE 
    ) t 
WHERE result LIKE '%term%' 
+0

はい2番目のオプションは完璧だった、ありがとうございました。内側のクエリー括弧の最後には何がありますか? – tyelford

+0

サブクエリのエイリアス名です。詳細はこちらhttps://technet.microsoft.com/en-us/library/ms190410(v=sql.105).aspx –

0

使用内部表をお試しください。

SELECT * FROM 
(select col1 + col2 + col3 as result from [table]) a 
where result like '%term%' 
+0

ここで、after()ブロックはテーブルエイリアスを意味します。ブロック内で作成したテーブルから選択しています。 –

1
DECLARE @Search VARCHAR(10)='term' 
SELECT Concat(col1, col2, col3) AS result 
FROM table 
WHERE Charindex(@Search, Concat(col1, col2, col3)) > 0 
関連する問題