Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[23.22.23.162] |
|
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Страницы: (15) « Первая ... 9 10 [11] 12 13 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#152
,
|
|
|
Где найти описание шаблонов при PATINDEX ?
У меня такая строка: "Отгрузка апрель 2018 - 50%" нужно вычленить проценты. Проценты могут быть от 0 до 100, т.е. как 1 символ, так и 3. Я думаю через PATINDEX найти вхождение этих чисел от первого пробела с права до %. Какой шаблон мне применить при поиске? Добавлено Можно так: REVERSE( SUBSTRING(REVERSE('Отгрузка май 2018 100%'),2, CHARINDEX(' ',REVERSE('Отгрузка май 2018 100%') )-1 ) ) Но это коряво как-то. |
Сообщ.
#153
,
|
|
|
А ещё лучше взять как-то последнюю группу цифр, т.е. варианты могут быть в теории - 50%, -50 %, - 50 % и надо как-то взять справа от первой цифры до последней цифры следовавшей подряд
|
Сообщ.
#154
,
|
|
|
Вот так сделал, но это ещё корявее. Ищем первую цифру. Берем от первой цифры до конца. Идем первую нецифру в найденной подстроке.
REVERSE(substring(REVERSE(TaskRequest.FileAs), PatIndex('%[0-9]%', REVERSE(TaskRequest.FileAs)), PatIndex('%[^0-9]%', substring(REVERSE(TaskRequest.FileAs), PatIndex('%[0-9]%', REVERSE(TaskRequest.FileAs)), len(TaskRequest.FileAs)))-1)) Как-то можно оптимизировать? |
Сообщ.
#155
,
|
|
|
Цитата ^D^ima @ Где найти описание шаблонов при PATINDEX ? https://docs.microsoft.com/ru-ru/sql/t-sql/...sql-server-2017 Цитата ^D^ima @ варианты могут быть в теории - 50%, -50 %, - 50 % и надо как-то взять справа от первой цифры до последней цифры следовавшей подряд pos = charindex(str, '%') str = left(str, pos-1) str = trim(str) str1 = reverse(str) pos = patindex(str1, '[^0-9]') str = right(str, pos-1) |
Сообщ.
#156
,
|
|
|
Спасибо.
Как мне узнать каким ключом связаны 2 таблицы? Делаю зависимость через Studio и не понимаю: https://yadi.sk/i/qOGNrzvH3ZJnkK Мне нужно Budget с Project связать |
Сообщ.
#157
,
|
|
|
Database Diagrams в SSMS. Или запросить скрипт создания - там будет и FK.
|
Сообщ.
#158
,
|
|
|
Коллеги, подкиньте идею.
Есть например 2 таблицы. ID, ФИО 1 Иванов 2 Петров 3 Сидоров ID, Дата, Сумма 1 01.01.2018 100руб 1 01.02.2018 200руб 2 01.05.2018 200руб Как на выходе получить Таблицу такого плана: ФИО, Январь, Февраль, март, Апрель, Май Иванов 100р. 200р. Петров 200р. Т.е. в зависимости от даты разносить суммы в столбцы месяцев. Через case лучше делать типа Case month(Дата)=1 then сумма as 'Январь' и так 12 раз или есть какая-то конструкция лучше? |
Сообщ.
#160
,
|
|
|
А можно ли как-то использовать переменную в select?
Например Что_то_там это длинная формула расчета и что-бы ее не переписывать несколько раз в select Select Что_то_там as 'Значение1', 'Значение1'-5 as 'Значение5' |
Сообщ.
#162
,
|
|
|
Akina
Спасибо за помощь |
Сообщ.
#163
,
|
|
|
А как передать параметр в подзапрос?
например мне нужно А1 передать в подзапрос как условие к where Select A1, (select B1 from table2 where table2.c1=A1) From table1 |
Сообщ.
#164
,
|
|
|
Select table1.A1, (select table2.B1 from table2 where table2.c1=table1.A1) From table1 Но с большой вероятностью запрос приведёт к ошибке, если на table2.c1 не наложено требование уникальности. |
Сообщ.
#165
,
|
|
|
Ещё такой вопрос:
Есть таблица: FIO,Number Иванов 4 Иванов 3 Иванов 2 Иванов 1 Сидоров 8 Сидоров 7 Сидоров 6 Сидоров 5 Нужно сгруппировать по FIO, по возрастанию Number и взять первые 2 выборки в каждой Т.е. на выходе должно быть это: FIO,Number Иванов 1 Иванов 2 Сидоров 5 Сидоров 6 |