【问题标题】:SQL Server Select Where value LIKE(temporary table value)SQL Server Select Where value LIKE(临时表值)
【发布时间】:2009-11-03 11:47:22
【问题描述】:

我在 SQL Server 2008 中有一个函数,它接受一个字符串:'A,B,C,D' 并将其拆分并创建一个值表。

Values
------
A
B
C
D

我现在想搜索一个表(用户),其中列值类似于上表中的一行(姓氏)。

这是我想做的:

SELECT * FROM Users WHERE vLastName LIKE 'A%'
SELECT * FROM Users WHERE vLastName LIKE 'B%'
SELECT * FROM Users WHERE vLastName LIKE 'C%'
SELECT * FROM Users WHERE vLastName LIKE 'D%'

如果以上都做不到,你会怎么做?某种循环?

我使用的是 SQL Server 2008

【问题讨论】:

  • 为什么要执行 4 次?为什么不简单地使用“OR”?
  • 抱歉,应该说清楚,我传入的是 'A,B,C,D'。所以需要动态拆分。可以是任何东西:'E,F,G,H' 等等...

标签: sql-server select sql-like


【解决方案1】:
SELECT * FROM Users,NewTable WHERE vLastName LIKE Values + '%'

【讨论】:

    【解决方案2】:
    SELECT * from Users u 
    JOIN StringSplitterResult r on r.Values = SUBSTRING( u.vLastName, 1,1)
    

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2021-12-29
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多