2009-11-03 71 views
3

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

Values 
------ 
A 
B 
C 
D 

我现在想要搜索一个表(用户)列值是LIKE其中一行(姓)在上表中。

这是我希望做什么:

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

+0

你为什么要执行它4倍?为什么不简单使用“OR”? – Faruz 2009-11-03 11:49:34

+0

对不起,应该说清楚,我正在通过'A,B,C,D'。所以它需要动态拆分。可能是任何东西:'E,F,G,H'等...... – jamesmhaley 2009-11-03 11:51:43

回答

2
SELECT * FROM Users,NewTable WHERE vLastName LIKE Values + '%' 
+0

这两个响应都像一种享受,但与这一个一起。 – jamesmhaley 2009-11-03 12:04:25

2
SELECT * from Users u 
JOIN StringSplitterResult r on r.Values = SUBSTRING(u.vLastName, 1,1)