0

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の正確な行を取得する必要があります。

4

2 に答える 2

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」がグループの最初の番号である場合です。2つ目はグループの真ん中にあるときをカバーし、3つ目はグループの最後にあるときをカバーします。

これは醜いです、そしてあなたが非常に少量のデータを扱っていない限り、それは同様に途方もなく遅いことはほぼ確実です。繰り返しますが、代わりに基本設計を修正する方がはるかに優れています。

于 2012-04-30T06:55:24.347 に答える
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-データ

于 2012-04-30T06:55:45.597 に答える