0

次のクエリはOracleではうまく機能しますが、SQLSERVERでは機能しません。他の目的で開発されたSQLSERVERのキーワード「ANY」は知っていますが、これを行うためのSQL SERVERに同様のキーワードがあることを知りたいです。次のクエリでは、fisrtname、lastname、middlenameはPersonテーブルの列です。

SELECT * FROM Person WHERE 'Somename' = ANY(firstname, lastname,middlename)
4

3 に答える 3

3

同等のものは

SELECT * FROM Person WHERE 'Somename' IN (firstname, lastname, middlename)
于 2012-07-30T12:35:49.117 に答える
0

あなたは単純に行うことはできません:

SELECT * FROM Person
WHERE
     firstname = 'Somename'
  OR lastname = 'Somename'
  OR middlename= 'Somename'

他の可能性もありますが、ほとんどの場合、オプティマイザーがインデックスをそのようにうまく利用することはできません。

SELECT * FROM Person
WHERE
     ('---' + firstname + '---' + lastname + '---' + middlename + '---')
     LIKE '%---Somename---%'
于 2012-07-30T12:18:44.637 に答える
0

私は次のようなものを書く以外に複数の列をチェックする方法を知りません:

SELECT * FROM Person WHERE 
firstname = 'Somename' 
OR lastname = 'Somename' 
OR middlename = 'somename'
于 2012-07-30T12:19:02.263 に答える