Selection from sql db with identical names

196
04 декабря 2021, 06:50

Подскажите, как исключить из запроса значения результатов по значению test, data которые не находятся в диапазоне, например (4, 9) в таблице данных

 id       name   data  
 1        test1    3
 1        res      sdf
 1        tost     asd
 1        test2    6
 2        test8    12

Необходимо, чтобы id 1 был исключен из запроса, так как 6 попадает в диапазон. результат будет только id 2

Answer 1

Действительно, странно, что диапазон нужно искать в строках... Как вариант, можно взять все ид, которые не подходят, и исключить их:

SELECT * FROM table1 
WHERE id NOT IN
(SELECT id FROM table1 WHERE CASE WHEN (data < 4 OR data > 9) THEN 0 ELSE -1 END = -1 AND name LIKE '%test%')

Дописал про "test", если правильно понял. То есть в name есть совпадение с строкой test и диапазон data [4,9], такие ид исключить.

http://sqlfiddle.com/#!9/3a0d80/3

Answer 2
SELECT * 
FROM table_name 
WHERE name LIKE 'test%' AND id NOT IN
(SELECT id FROM table_name WHERE name LIKE 'test%' AND (data BETWEEN 4 AND 9)
READ ALSO
Удалить свойство объекта redux react

Удалить свойство объекта redux react

Суть такова, я использую react-redux и стороннюю библиотеку normalizr, таким образом я имею некоторый объект объектов который выглядит примерно следующий...

165
Как вернуть несколько самых длинных слов из строки?

Как вернуть несколько самых длинных слов из строки?

Вот функция которая принимает строку и возвращает самое длинное слово в этой строке

230
java object, приведение типов

java object, приведение типов

Как в Java Object хранит переменные любого типа? те

102