|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Пожалуйста, подскажите: В C# есть конструкция is, при помощи которой можно проверить допустимость приведения значения к тому или иному типу. Хотелось бы знать, есть ли что-нибудь аналогичное в sql. Суть задачи в чем, есть поле типа VARCHAR(10) И нужно что-то вроде этого SELECT (CASE WHEN FieldName IS INT THEN CAST(FieldName AS INT) ELSE 0 END) AS FieldRes FROM Table ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 10:21 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 10:24 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
mletov, Вы совершенно не понимаете смысл оператора is. В T-SQL нет наследования. Зато есть TRY_CAST (Transact-SQL) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 10:26 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Glory, iap Спасибо, то, что нужно:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 11:08 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что это есть только в 2012, а в остальных надо перехватывать исключение при помощи TRY и CATCH? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 17:37 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Dmitry V. Liseev, Да, к сожалению, это так но для моей задачи меня выручили эти темы http://www.sql.ru/forum/1001529/kak-proverit-chislo?mid=13861719#13861719 http://www.sql.ru/forum/1045426/analog-try-cast-v-2008 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:12 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
mletovDmitry V. Liseev, Да, к сожалению, это так но для моей задачи меня выручили эти темы http://www.sql.ru/forum/1001529/kak-proverit-chislo?mid=13861719#13861719 http://www.sql.ru/forum/1045426/analog-try-cast-v-2008 Я тоже видел подобные темы. Впечатлился масштабами хакерского кода. Вспомнил бритву Оккама. Вздохнул. И написал Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:21 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Dmitry V. LiseevЯ тоже видел подобные темы. Впечатлился масштабами хакерского кода. Вспомнил бритву Оккама. Вздохнул. И написал Код: sql 1.
только вот, в функциях так нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:27 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Dmitry V. LiseevЯ тоже видел подобные темы. Впечатлился масштабами хакерского кода. Вспомнил бритву Оккама. Вздохнул. И написал Код: sql 1.
это если не нужна именно функция ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:28 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Dmitry V. Liseev, с использованием внутри select у бритвы Оккама будут проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:29 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
dawDmitry V. LiseevЯ тоже видел подобные темы. Впечатлился масштабами хакерского кода. Вспомнил бритву Оккама. Вздохнул. И написал Код: sql 1.
только вот, в функциях так нельзя.Нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 18:51 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Для 2005 - 2008R2 можно вот так извратиться: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2014, 19:42 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
mletovПожалуйста, подскажите: В C# есть конструкция is, при помощи которой можно проверить допустимость приведения значения к тому или иному типу. Хотелось бы знать, есть ли что-нибудь аналогичное в sql. Суть задачи в чем, есть поле типа VARCHAR(10) И нужно что-то вроде этого SELECT (CASE WHEN FieldName IS INT THEN CAST(FieldName AS INT) ELSE 0 END) AS FieldRes FROM TableО, ужас!.. :) Сколько помню MSSQL, всегда было ISNUMERIC ЗЫ. Аналогичное было для проверки даты - ISDATE ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 10:19 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
sphinx_mvО, ужас!.. :) Сколько помню MSSQL, всегда было ISNUMERIC И что же означает 1, которую возвращает ISNUMERIC(), по-Вашему? Этого достаточно, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 10:32 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
sphinx_mvСколько помню MSSQL, всегда было ISNUMERIC Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:02 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
iapsphinx_mvО, ужас!.. :) Сколько помню MSSQL, всегда было ISNUMERIC И что же означает 1, которую возвращает ISNUMERIC(), по-Вашему? Этого достаточно, да?Для проверки допустимости конвертации - да. Тем более, что очень не все уже перешли хотя бы на 2012 версию SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:06 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
А что не так с ISNUMERIC()? Эта функция как раз проверяет возможность конвертирования строки в числовой формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:08 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Ruuusphinx_mvСколько помню MSSQL, всегда было ISNUMERIC Код: sql 1.
а также еще Код: sql 1.
:) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:08 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
А не то, о чем все думают ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:08 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
sphinx_mviapпропущено... И что же означает 1, которую возвращает ISNUMERIC(), по-Вашему? Этого достаточно, да?Для проверки допустимости конвертации - да. Тем более, что очень не все уже перешли хотя бы на 2012 версию SQL. т.е. что-то типа? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:09 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
msLexsphinx_mvпропущено... Для проверки допустимости конвертации - да. Тем более, что очень не все уже перешли хотя бы на 2012 версию SQL. т.е. что-то типа? Код: sql 1. 2. 3. 4.
Select забыли. А вы прочитали что вам написали чуть повыше про isnumeric()? Если вас это устраивает, то в путь... Но тогда лучше так: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:14 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Владислав КолосовА что не так с ISNUMERIC()? Эта функция как раз проверяет возможность конвертирования строки в числовой формат. "Число ли это?" и "Можно ли это сконвертировать в INT?" - это совершенно разные вопросы ;) Как минимум, IsNumeric не поймает переполнение (не говоря уже про упоминавшиеся выше записи с плавающей точкой и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:16 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
ааа, и еще :) isnumeric() это не только int. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:16 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
случайно заглянул Код: sql 1. 2. 3. 4.
что за бред вы написали? где здесь конвертация сроки '100' к числу 100? случайно заглянулА вы прочитали что вам написали чуть повыше про isnumeric()? а вы почитали 1. кому написали про isnumeric? 2. кому я написал по isnumeric? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:18 |
|
Проверка на допустимость приведения типов
|
|||
---|---|---|---|
#18+
Владислав КолосовА что не так с ISNUMERIC()? Эта функция как раз проверяет возможность конвертирования строки в числовой формат.только вы не знаете в какой. для строки '-$' вернет 1, т.к. можно конвертировать в (small)money и только, а для '3e8' - потому что можно в float, но не money или int. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2014, 11:20 |
|
|
start [/forum/topic.php?fid=46&msg=38674682&tid=1701644]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 560ms |
0 / 0 |