WHERE子句中的多个OR条件

时间:2016-12-20 16:50:28

标签: sql sql-server-2012

我有一个这样的where子句:

 $('a#download-button').on "click", ->

    urlList = [
      'http://www.google.com'
      'http://www.msn.com'
      'http://www.yahoo.com'
    ]

    wnd = undefined
    curIndex = 0

    openWindow = ->
      wnd = window.open(urlList[curIndex], '', '')
      setTimeout (->
        wnd.close()
        curIndex++
        if curIndex < urlList.length
          openWindow()
        return
      ), 2000
      return

    openWindow()

如何优化?

1 个答案:

答案 0 :(得分:0)

我们需要查看完整的查询才能给您一个完整的答案。

但是,假设您正在对表T进行11次自连接,则可以通过首先在CTE中应用过滤器来简化查询并可能提高性能。

WITH T
AS (
SELECT *
FROM basetable
WHERE Update_date >= @d
)
SELECT *
FROM T AS t1
INNER JOIN T AS t2
    ON t1.Pk = t2.Pk
INNER JOIN T AS t3
    ON t1.Pk = t3.Pk;

如果您在CTE中过滤,则对CTE的所有后续引用都将包含过滤器。根据查询的其余部分,这可以通过将过滤器限制为单次传递来提高性能。它还可以压缩代码并使其更易于维护。