Запросы к ненормализованной таблице - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть таблица со многими отношениями, мне нужно опустить 3 типа свойств (начиная с 0, начиная с 1 и имея - в свойстве) и выбрать только пользователей, которые имеют только 1 тип свойства, который является буквенно-цифровой строкой.

Посоветуйте, пожалуйста, как этого добиться в SQL.

User        Property
------      ----------
A1          0XXX
A1          1XXX
A1          X-XXX
A1          ABC2

A2          0XXX
A2          AC2B
A2          X-XXX

A3          0XXX
A3          1XXX

A4          DEF0

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018
SELECT * FROM <table>
WHERE user NOT IN 
(
    SELECT user FROM <table>
    WHERE Property LIKE '%-%'
    OR Property LIKE '0%'
    OR Property LIKE '1%'
)
AND Property LIKE '%[^a-zA-Z0-9]%'
0 голосов
/ 27 апреля 2018

Вы можете использовать:

SELECT [User]
FROM tab
EXCEPT
SELECT [User]
FROM tab
WHERE LEFT(Property,1) IN ('0','1')
  OR Property LIKE '%-%';
...