0

以下查询在 Oracle 中运行良好,但在 SQL SERVER 中运行良好。我知道“ANY”,SQL SERVER 中的关键字是为其他目的而开发的,但我想知道 SQL SERVER FOR 中是否有类似的关键字在下面的查询中 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 回答