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

Откуда:
Сообщений: 31
Если я получаю переменную, я могу ее разбить на части? так как это можно например делать в питоне? R1 = R[0:1]
declare @UST varchar(10)
set @UST = '>40'
-- как-то разбить и получить  @UST1 и  @UST2
if ( @UST1 = '>')
   if (50 > @UST2)
       print '50 > 40'
if ( @UST1 = '<')
   if (50 < @UST2)
       print '50 < 40'
   else
       print 'error'

Если совсем бред, то удалите тему...
13 дек 14, 11:59    [16992861]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
JeStone
Member

Откуда:
Сообщений: 248
kristow,
SUBSTRING http://msdn.microsoft.com/ru-ru/library/ms187748.aspx
LEN http://msdn.microsoft.com/ru-ru/library/ms190329.aspx

SET @UST1 = SUBSTRING(@UST, 1, 1)
SET @UST2 = SUBSTRING(@UST, 2, LEN(@UST));
13 дек 14, 12:45    [16992952]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
kristow
Member

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

Спасибо. То что надо. :)
Я вчера просматривал разного вида структуры IF условия. Видел интересное использование в одну строку, точно не помню как, что-то типа:
if (5 > @x, print 'ok', print 'no'). 

Сейчас не могу найти этот пример в интернете.
Подскажите как правильно это пишется...
13 дек 14, 14:20    [16993172]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
JeStone
Member

Откуда:
Сообщений: 248
kristow,
Вы видимо СУБД перепутали. Подобного рода IF можно использовать в некоторых СУБД, например, в MySQL
SET @type = 'Р';
SET @amount = 3;
SET @amount = IF(@type = 'Р', @amount, @amount * -1);
SELECT @amount;

T-SQL вместо это используется выражение CASE
13 дек 14, 14:35    [16993197]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
kristow
Member

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

Да, видимо ошибся СУБД...
про CASE не понял как в IF использовать. Решил пока классическим видом IF.
13 дек 14, 15:13    [16993269]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
StarikNavy
Member

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

case when 5 > @x  then print 'ok'  else print 'no' end
15 дек 14, 10:13    [16997288]     Ответить | Цитировать Сообщить модератору
 Re: Разбить переменную на части  [new]
Glory
Member

Откуда:
Сообщений: 104751
Вот так и рождается говнокод.
Вместо одного запроса с join/where пишится феерический код с циклом, разбиением переменной и принтами.
15 дек 14, 10:20    [16997322]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить