Создайте SQL-запрос, который проверяет имя столбца на наличие выбранной строки слов

#sql #sql-server-2008

#sql #sql-server-2008

Вопрос:

Формат моих данных на данный момент (av_version — это nvarchar)

 company    av_version
company1   8.5.0.440
company1   8.5.0.332
company1   8.5.0.232
company1   8.5.0.111
company2   10.0.0.1509
company2   10.0.0.2323
company2   10.0.0.1232
company2   10.0.0.2253
company3   8.5.0.232
company3   10.0.0.2253
  

Что мне нужно, так это запрос, который проверит все записи AV-версии для этой компании, и если 8.5.0 будет указана хотя бы один раз, то это будет отображаться как отдельная компания. В примере данные company1 и company3 будут возвращаемым списком. Сложность здесь в том, что окончание av-версии может быть любым. Любая помощь приветствуется

Ответ №1:

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

 av_version LIKE '8.5.0%'
  

Ответ №2:

Вы можете создать инструкцию select, которая включает в себя инструкцию select. Например, давайте предположим, что имя таблицы «avcom».

 select company, hc_version, max(av_version) as av_version
from 
(
    select company, av_version, '8.5.0' as hc_version
    from avcom
    where av_version like '8.5.0%'
)
group by company, hc_version
  

Запрос не был протестирован! Кроме того, я предположил, что вам может понадобиться что-то вроде последнего / наибольшего номера версии (max (av_version)) для результата в дополнение к результату ‘8.5.0’, который исправлен.

Ответ №3:

 SELECT DISTINCT company
FROM atable
WHERE av_version = '8.5.0'
   OR av_version LIKE '8.5.0.%'