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

Откуда: Харьков
Сообщений: 18
в запросе делаю проверку

where (cast(model as int)/1000)%2=0

проверяю на четность. все работает, но мне нужна потом эта четная цифра (будет использоваться в выводе)
и как сделать . чтоб сразу записать в переменную
я думал так:

where ((cast(model as int)/1000)as n)%2=0

но так не проходит.
помогите новичку.
26 янв 12, 12:31    [11974600]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
rkazanova,

((cast(model as int)/1000)as n)%2
26 янв 12, 12:33    [11974612]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
rkazanova
Member

Откуда: Харьков
Сообщений: 18
WarAnt,

нет. так не проходит, я так делал
26 янв 12, 12:35    [11974625]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
WarAnt
rkazanova,

((cast(model as int)/1000)as n)%2


Добавить в select :)
26 янв 12, 12:42    [11974700]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
rkazanova
Member

Откуда: Харьков
Сообщений: 18
denis2710,
нет, вызывает ошибку 20005, это значит неизвестно что выполнится первым
26 янв 12, 12:43    [11974709]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
rkazanova
Member

Откуда: Харьков
Сообщений: 18
rkazanova,

Select type from A
where ((cast(type as int)/1000))%2=0 and
((cast(reverse(type) as int)/1000))%2<>0 and
(cast(type as int)/1000)<(cast(reverse(type) as int)/1000)

расписываю: нужно вывести те значения type, где в четырехзначном числе первое четное и последнее нечетное.
изначально тип переменной type varchar. поэтому применяю cast.
так вот, нужно еще вывести сумма вот этих первого и последнего.
26 янв 12, 12:52    [11974800]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
rkazanova
нужно вывести те значения type, где в четырехзначном числе первое четное и последнее нечетное.
изначально тип переменной type varchar
WHERE [type] LIKE '[02468][0-9][0-9][13579]'
26 янв 12, 12:58    [11974845]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
rkazanova
так вот, нужно еще вывести сумма вот этих первого и последнего.
CAST(LEFT(model,1)AS INT)+CAST(RIGHT(model,1)AS INT)
26 янв 12, 13:01    [11974893]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Запутался, где model, а где type
iap
rkazanova
так вот, нужно еще вывести сумма вот этих первого и последнего.
CAST(LEFT([type],1)AS INT)+CAST(RIGHT([type],1)AS INT)
26 янв 12, 13:03    [11974909]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
rkazanova
rkazanova,

Select type from A
where ((cast(type as int)/1000))%2=0 and
((cast(reverse(type) as int)/1000))%2<>0 and
(cast(type as int)/1000)<(cast(reverse(type) as int)/1000)

расписываю: нужно вывести те значения type, где в четырехзначном числе первое четное и последнее нечетное.
изначально тип переменной type varchar. поэтому применяю cast.
так вот, нужно еще вывести сумма вот этих первого и последнего.


Первая цифра четная и последняя нечетная?В type лежат только 4-х значные цифры?
26 янв 12, 13:04    [11974913]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
rkazanova,

а чегой-то ещё какое-то сравнение стоит числа с собой, но перевёрнутым?
Почему об этом промолчали?
26 янв 12, 13:09    [11974964]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
rkazanova
Member

Откуда: Харьков
Сообщений: 18
iap
rkazanova,

а чегой-то ещё какое-то сравнение стоит числа с собой, но перевёрнутым?
Почему об этом промолчали?


сори это было доп условие, что первое меньше последнего.
26 янв 12, 13:13    [11975016]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
iap
rkazanova,

а чегой-то ещё какое-то сравнение стоит числа с собой, но перевёрнутым?
Почему об этом промолчали?
Имею в виду сравнение первой цифры с четвёртой
26 янв 12, 13:13    [11975017]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
rkazanova
iap
rkazanova,

а чегой-то ещё какое-то сравнение стоит числа с собой, но перевёрнутым?
Почему об этом промолчали?


сори это было доп условие, что первое меньше последнего.
Их можно сравнивать без каста - получится то же самое
26 янв 12, 13:14    [11975026]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
rkazanova
rkazanova,

Select type from A
where ((cast(type as int)/1000))%2=0 and
((cast(reverse(type) as int)/1000))%2<>0 and
(cast(type as int)/1000)<(cast(reverse(type) as int)/1000)

расписываю: нужно вывести те значения type, где в четырехзначном числе первое четное и последнее нечетное.
изначально тип переменной type varchar. поэтому применяю cast.
так вот, нужно еще вывести сумма вот этих первого и последнего.


cast(left(type,1) as int)%2=0 and cast(right(type,1) as int)%2=1
26 янв 12, 13:15    [11975045]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
rkazanova
Member

Откуда: Харьков
Сообщений: 18
iap,
спасибо всем. но помог iap.

вот что получилось( усложнил, чтоб заданное может быть не только четырехзначное, а и более)

Select type, cast(left(type,1) as int) * cast(right(type,1) as int)
from Product
where model LIKE '[02468]%[13579]' and
cast(left(type,1) as int) < cast(right(type,1) as int)
26 янв 12, 13:19    [11975098]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
rkazanova
iap,
спасибо всем. но помог iap.

вот что получилось( усложнил, чтоб заданное может быть не только четырехзначное, а и более)

Select type, cast(left(type,1) as int) * cast(right(type,1) as int)
from Product
where model LIKE '[02468]%[13579]' and
cast(left(type,1) as int) < cast(right(type,1) as int)
Я ж говорю, не нужен каст в последней строчке!!!
Есть ли гарантия, что в model одни цифры? Иначе '%' нехорошо как-то...
26 янв 12, 13:41    [11975374]     Ответить | Цитировать Сообщить модератору
 Re: запись преобразования в переменную  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
rkazanova, не стоит решать задачи sql-ex здесь. Рашайте самостоятельно или обратитесь в поддержку. Иначе за нарушение правил можете получить проблемы.
26 янв 12, 14:53    [11976121]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить