|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Добрый день. Прошу помочь с кодом. В коде есть две переменные, которые берут значение из ячеек Excel. Но в ячейках может и не быть значений. Что добавить в код чтобы в случае одного значения фильтровалась таблица только по одному значению, а если нет двух значений то возвращалась бы вся таблица без фильтрации. Например код такой:авторselect * from students where id > переменная1 and id < переменная2 Надо типа: авторselect * from students where (if переменная1=NULL then пропускаем условие else id > переменная1) and (if переменная2=NULL then пропускаем условие else id < переменная2) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 07:10 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 07:53 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Неужели так просто и понятно?! Спасибо! Сейчас опробую ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 07:57 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
court, я извиняюсь, выходит ошибка - Несоответствие типов данных в выражении условия отбора. Получается надо вариант : автор(id > ? or ? is нечисло) В поле id числа и если нет числа, то надо всю таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 08:31 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Прикрепил файл. Надо при отсутствии значения в ячейке С1 получить всю таблицу Базу данных в папку C:\Path\ Запрос виден по пути Данные-Подключение-Свойства-Определение ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 09:16 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Михаил Л, напишите функцию, которая принимает на вход строку и выдаёт на выходе целое число, если входная строка может быть преобразована в целое число, и выдаёт на выходе null, если строка не может быть преобразована в число. Затем эту функцию вы сможете применить в секции WHERE как показано выше, немного изменив код. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 10:32 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Сотрудник Главного Управления напишите функцию, которая .. Как они выглядят? Эти функции? Это в Power Query я бы смог написать функцию, а в sql пока ничего писать не могу. Могу код нагуглить и применить) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 10:38 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Михаил Л, Ну вот, например Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 11:48 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
court Код: sql 1.
я бы сделал так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 11:51 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
- ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 11:53 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Сотрудник Главного Управления не, это не мой стиль А если id может быть отрицательным? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 15:49 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
iap А если id может быть отрицательным? Вообще-то ни разу не встречал отрицательного id в пользовательских Excel-файлах. А вы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 16:46 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Сотрудник Главного Управления Михаил Л, напишите функцию, которая принимает на вход строку и выдаёт на выходе целое число.. Если это так, то мне не подходит этот вариант. У меня нет доступа к базе данных чтобы туда чт либо записывать. У меня есть название сервера, название базы данных и имя пользователя+пароль. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 18:24 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
А можно на худой конец так сделать: Если переменная1 нет среди значений столбца id, то выводить всю таблицу. Типа: авторSELECT * FROM DataAuto where if Year = ? and (? in SELECT DISTINCT Year FROM DataAuto = TRUE) then DataAuto where if Year = ? else FROM DataAuto Как это правильно написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 18:53 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
авторпеременные, которые берут значение из ячеек Excel. Но в ячейках может и не быть значений. Что значит "может не быть"? Проверьте как это запрос интерпретирует. Может вам надо сравнивать с пустой строкой типа ''. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 19:14 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
PizzaPizza TRY_PARSE ? Не знаю что надо. Можете это кодом написать? как то так:авторIF (? in SELECT DISTINCT Year FROM DataAuto = TRUE) THEN SELECT * FROM DataAuto where Year = ? ELSE SELECT * FROM DataAuto ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 19:22 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
ну у вас сравнение с отсутствующим значением должно быть, что бы это ни значило. Если у вас там пустая строка, то вы сравниваете строку с числом, и получаете ошибку, поэтому вам надо привести ваше "отсутствующее значение" к такому, с которым можно сравнивать. Выясните, что там у вас на самом деле за тип данных, когда "отсутствует значение" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 19:29 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
PizzaPizza что там у вас на самом деле за тип данных, когда "отсутствует значение" Не знаю, может текст нулевой длины. Вообще если отсутствующее значение разделить на один, то возвращает ноль. Если в ячейке будет текст, например, "а", то при делении будет ошибка. При пустом значении 0авторпеременная1/1 = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 19:47 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
PizzaPizza Может вам надо сравнивать с пустой строкой типа '' Вот именно с этой строкой такого типа! Вся суть: Есть в ячейках значения для переменной - значит фильтруем таблицу. Нет в ячейках значения для переменной - значит выводим всю таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 20:01 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
PizzaPizza надо сравнивать с пустой строкой типа ''. На этом прошу дальше этот вопрос не решать, так как ставлю точку и делаю вывод что эта задача нерешаема. Всем спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 21:36 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Михаил Л, вам надо сделать несколько вариантов запроса для состояния переменных "известно" и "неизвестно" и выбирать варианты по состоянию переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 21:50 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Владислав Колосов надо сделать несколько вариантов запроса для состояния переменных "известно" и "неизвестно" и выбирать варианты по состоянию переменных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 22:29 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Михаил Л, IF переменная1 IS NULL SELECT первый вариант без переменной ELSE SELECT второй вариант с переменной ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 22:34 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Владислав Колосов, спасибо! Проблема решается таким вариантом. Завтра загружу готовый вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2020, 23:19 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Владислав Колосов IF переменная1 IS NULL Зато сработал первый вариант от court . авторSelect * From [DataAuto] Where (([Year] = ? and ? is not null ) or ([Year] in (SELECT DISTINCT Year FROM DataAuto) and ? = 0 )) and (Код > ?) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2020, 06:41 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Михаил Л, не сработало в каком смысле? Вы в аксес не знаете, как проверить переменную на NULL? IF пишите на на VB, затем выполняйте SELECT на SQL server. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2020, 10:47 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Владислав Колосов не сработало в каком смысле? Вы в аксес не знаете, как проверить переменную на NULL? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2020, 15:27 |
|
Если значение переменных не имеется то не применять Where
|
|||
---|---|---|---|
#18+
Сотрудник Главного Управления court Код: sql 1.
я бы сделал так Код: sql 1.
Так более универсально: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 16:48 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1685700]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 383ms |
0 / 0 |