Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2018, 10:22
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
Все привет. MS SQL 2014 В рамках некой задачи, где нужна сортировка по заданному пользователем атрибуту, столкнулся с такой проблемой. Можно продемонстрировать на таком запросе: Код: sql 1. 2. 3. 4. 5. 6. С @sortColum=2 (интовое поле) - все нормально, с 1 - валится с Conversion failed when converting the varchar value 'textColumn' to data type int То есть логика такая - если при определенных условиямх поле может быть int, значит оно будет всегда int. Ладно, допустим, не может он определить тип поля "на лету", но почему int, а не текст? И как это обойти, кроме Dynamic SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 10:31
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
McCar, явным кастом к нужному типу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 10:50
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
buser, Да понятно что можно к тексту скастовать, если бы речь шла просто о отображании на UI, но тут речь идет про сортировку, - мне не надо чтобы число сортировалось как текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 10:54
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
McCar, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 11:58
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
Что интересно, для если речь идет только о стринговых полях или только о числовых, оно вполне себе может определять тип колонки в result-set-е "на лету". Код: sql 1. 2. 3. 4. 5. Пришлось разбить колонки на две группы, - числовые и строковые, и для каждого делать отдельный order by. По мне все это как то странно, и больше похоже на багу чем фичу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 12:05
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2018, 12:07
|
|||
|---|---|---|---|
Неявное преобразование в integer в динамически (case when @par=.. ) определяемой колонке |
|||
|
#18+
iapMcCar, почитали бы доку сначала: Приоритет типов данных Выражение CASE Возвращает выражение с наивысшим приоритетом из набора выражений result_expressions и необязательного выражения else_result_expression https://msdn.microsoft.com/ru-ru/library/ms181765(v=sql.110).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1690297]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
63ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 434ms |

| 0 / 0 |
