Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите задать маску  [new]
через зад
Guest
имеется таблица с char(9),
значения - это наборы S и N в разных комбинациях,
вот пример данных:

SNNNNNNNN
NNNSNNNNN
SSSNNNNNN
NNSSNNNNN
SNNNNNNSS
NNNNNNNSN
NNNNNNNNS
NNNNNNSNN
NNNNNNNNN

надо выбрать значения, где есть S ровно 1 раз.
мне в голову приходит заменить все S на 1, все N на 0,
разложить на 9 символов и сложить.
где сумма = 1, та строка мне подходит.
но уж больно через зад.
можно ли обойтись LIKE-ом с хитрой маской?
и вообще любые предложения приветствуются.

исходные данные:
declare @t table (sn char(9));
insert into @t 
values
		('SNNNNNNNN'),
		('NNNSNNNNN'),
		('SSSNNNNNN'),
		('NNSSNNNNN'),
		('SNNNNNNSS'),
		('NNNNNNNSN'),
		('NNNNNNNNS'),
		('NNNNNNSNN'),
		('NNNNNNNNN')


желаемый результат:
SNNNNNNNN
NNNSNNNNN
NNNNNNNSN
NNNNNNNNS
NNNNNNSNN
10 янв 13, 18:05    [13749156]     Ответить | Цитировать Сообщить модератору
 Re: помогите задать маску  [new]
Strangers
Member [заблокирован]

Откуда: Україна
Сообщений: 2613
declare @t table (sn char(9));
insert into @t 
values
		('SNNNNNNNN'),
		('NNNSNNNNN'),
		('SSSNNNNNN'),
		('NNSSNNNNN'),
		('SNNNNNNSS'),
		('NNNNNNNSN'),
		('NNNNNNNNS'),
		('NNNNNNSNN'),
		('NNNNNNNNN')
		
SELECT *
FROM @t
WHERE LEN(REPLACE(sn,'S',''))=LEN(sn)-1
10 янв 13, 18:09    [13749178]     Ответить | Цитировать Сообщить модератору
 Re: помогите задать маску  [new]
через зад
Guest
Strangers,

вот!!!
должно же было просто решаться :)
спасибо.
10 янв 13, 18:13    [13749210]     Ответить | Цитировать Сообщить модератору
 Re: помогите задать маску  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
WHERE sn LIKE '%S%' AND sn NOT LIKE '%S%S%'
Если есть гарантия, что хотя бы одна S в строке есть, то первый LIKE не нужен
10 янв 13, 20:15    [13749875]     Ответить | Цитировать Сообщить модератору
 Re: помогите задать маску  [new]
через зад
Guest
iap,

да, вот как-то так хотелось.
бывают строки целиком из N, так что нужно все, спасибо!
10 янв 13, 22:59    [13750410]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить