Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
vooo, почитайте про collate |
14 авг 18, 16:20 [21642119] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
vooo, COLLATE Latin1_General_CI_AS |
14 авг 18, 16:20 [21642120] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
TaPaK, спасибо! |
14 авг 18, 16:21 [21642122] Ответить | Цитировать Сообщить модератору |
Посетитель Member Откуда: Сообщений: 1210 |
TaPaK, CI - разве не Insensitive? |
14 авг 18, 16:22 [21642123] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
нисомненно Latin1_General_CS_AS |
||
14 авг 18, 16:24 [21642126] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
TaPaK Посетитель спасибо |
14 авг 18, 17:07 [21642192] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11567 |
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] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
Konst_One а как правильно записать условие чтобы могла попадать заглавная англ буква или цифра и никакой другой символ кроме перечисленных? Запутался) |
20 авг 18, 17:48 [21648501] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11567 |
оставьте одно условие какое-либо условие , для логики понимания выполните их отдельно (2-е у вас явно неверное, там два отрицания) |
20 авг 18, 17:49 [21648505] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
Konst_One, мда вообще не работает даже первая Что то не оч понимаю - как написать |
20 авг 18, 17:56 [21648513] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11567 |
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] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
Konst_One, да Спасибо! |
20 авг 18, 18:01 [21648520] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
Поторопился Например также проходит проверка для @val=N'DЮ4' (Ю русское) или @val=N'D 4' (с пробелом) |
20 авг 18, 18:07 [21648530] Ответить | Цитировать Сообщить модератору |
KRS544 Member Откуда: Сообщений: 497 |
if (@val COLLATE Latin1_General_BIN NOT LIKE '%[^0-9A-Z]%') select 1 else select 0 |
20 авг 18, 18:18 [21648542] Ответить | Цитировать Сообщить модератору |
vooo Member Откуда: Сообщений: 1316 |
KRS544,больщое спасибо! |
20 авг 18, 18:34 [21648564] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |