我在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的确切行。
答案 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+',%'