Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Добрый день!
Строка может состоять из цифр и заглавных английских букв
Как написать проверку LIKE
Проверка ниже срабатывает для англ букв в любом регистре (возвращает 1 )
declare @val varchar(100)
        select @val='aaaa123'
        if (@val LIKE '%[0-9A-Z]%' and not @val LIKE '%[^0-9A-Z]%' )
           select 1 
        else
            select 0

Спасибо!
14 авг 18, 16:17    [21642114]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
vooo,

почитайте про collate
14 авг 18, 16:20    [21642119]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
vooo,

COLLATE Latin1_General_CI_AS
14 авг 18, 16:20    [21642120]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
TaPaK, спасибо!
14 авг 18, 16:21    [21642122]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
TaPaK,

CI - разве не Insensitive?
14 авг 18, 16:22    [21642123]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Посетитель
TaPaK,

CI - разве не Insensitive?

нисомненно

Latin1_General_CS_AS
14 авг 18, 16:24    [21642126]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
TaPaK Посетитель спасибо
14 авг 18, 17:07    [21642192]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Подниму тему
Вот пример когда возвращается 1 (кейс пройден) , что то не докрутил (хотя буквы в нижнем регистре)
Повторю - должны проходить (1) только заглавные английские и цифры , в противном случае 0
declare @val varchar(100)
        select @val='d4' ----возвращает 1  (некорректно)
        select @val='w1'  ----возвращает 1 (некорректно)
       select @val='a1' -----возвращает 0 (корректно)
        if (@val COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z]%' and not @val COLLATE Latin1_General_CS_AS LIKE '%[^0-9A-Z]%' )
        
            select 1 
        else
            select 0

Подскажите что не так
Спасибо!
20 авг 18, 17:43    [21648492]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
if (@val COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z]%' and not @val COLLATE Latin1_General_CS_AS LIKE '%[^0-9A-Z]%' )


что за масло масляное?
20 авг 18, 17:45    [21648495]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Konst_One а как правильно записать условие чтобы могла попадать заглавная англ буква или цифра и никакой другой символ кроме перечисленных? Запутался)
20 авг 18, 17:48    [21648501]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
оставьте одно условие какое-либо условие , для логики понимания выполните их отдельно (2-е у вас явно неверное, там два отрицания)
20 авг 18, 17:49    [21648505]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Konst_One, мда вообще не работает даже первая Что то не оч понимаю - как написать
20 авг 18, 17:56    [21648513]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
declare @val nvarchar(100)
        select @val=N'd4' ----возвращает 1  (некорректно)
        select @val=N'w1'  ----возвращает 1 (некорректно)
       --select @val=N'a1' -----возвращает 0 (корректно)
        if (@val COLLATE Latin1_General_BIN LIKE N'%[0-9]%' and @val COLLATE Latin1_General_BIN LIKE N'%[A-Z]%' )
            select 1 
        else
            select 0


вам это надо?
20 авг 18, 17:58    [21648516]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Konst_One, да Спасибо!
20 авг 18, 18:01    [21648520]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
Поторопился
Например также проходит проверка для @val=N'DЮ4' (Ю русское) или @val=N'D 4' (с пробелом)
20 авг 18, 18:07    [21648530]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
KRS544
Member

Откуда:
Сообщений: 497
        if (@val  COLLATE Latin1_General_BIN NOT LIKE '%[^0-9A-Z]%')
            select 1
        else
            select 0
20 авг 18, 18:18    [21648542]     Ответить | Цитировать Сообщить модератору
 Re: шаблон LIKE  [new]
vooo
Member

Откуда:
Сообщений: 1316
KRS544,больщое спасибо!
20 авг 18, 18:34    [21648564]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить