SQLServer2005では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の正確な行を取得する必要があります。
SQLServer2005では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の正確な行を取得する必要があります。
おそらく、「7」を数字として一致させたいと思いますが、数字「7」を含む他の数字(たとえば、75)はおそらくそうではありません。
これを使って行うことはかなり醜いものになるので、可能であれば、単にテーブルを変更する方がはるかに良いでしょう。選択の余地がない場合は、次のようなことができると思います。
select whatever from your_table where
your_column like '7,%' or
your_column like '%,7,% or
your_column like '%,7'
最初のカバーは、「7」がグループの最初の番号である場合です。2つ目はグループの真ん中にあるときをカバーし、3つ目はグループの最後にあるときをカバーします。
これは醜いです、そしてあなたが非常に少量のデータを扱っていない限り、それは同様に途方もなく遅いことはほぼ確実です。繰り返しますが、代わりに基本設計を修正する方がはるかに優れています。
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+',%'