SQL Server 2005中的SELECT查询

时间:2012-04-30 06:43:13

标签: sql-server-2005

我在SQL Server 2005中有4行和1列的以下值。

7,75,8,95,55
8,75,8,95,66 
6,75,86,7,55 
74,75,84,95,55

如果我在SQL查询中传递值7,我需要获得具有值7的确切行。

2 个答案:

答案 0 :(得分:2)

据推测,你希望'7'匹配一个数字,但大概包含数字'7'的其他数字(例如75)。

你用它做的任何事情都会非常难看,所以如果可能的话,你只需更换表就好多了。我想如果你别无选择,你可以这样做:

select whatever from your_table where 
     your_column like '7,%' or 
     your_column like '%,7,% or 
     your_column like '%,7'

当'7'是组中的第一个数字时,第一个覆盖。第二个是在组中间时覆盖,第三个覆盖在组中的最后一个时。

这很难看,除非你处理非常少量的数据,否则几乎可以肯定也会非常缓慢。我会再说一次:你真的会更好地很多更好地修改基本设计。

答案 1 :(得分:2)

declare @T table
(
  Col varchar(20)
)

insert into @T values
('7,75,8,95,55'),
('8,75,8,95,66'), 
('6,75,86,7,55'), 
('74,75,84,95,55')

declare @Val varchar(10)
set @Val = '7'

select Col
from @T
where ','+Col+',' like '%,'+@Val+',%'

SE-Data