select one row based on a string I have a table like this:

and I want to have the output like this:

If I use case to this, I'm not getting a unique value for each pc. I used:
case
when software like '%7zip%' then software
else 'no'
end;

and I'm getting for computer_id something like this:

I don't know what function to use and if I can do this with 'case'.
Thank you!
Below is an example using a CTE with conditional aggregation.
WITH inventory_per_computer AS (
    SELECT Computer_id, SUM(CASE soft WHEN '7Zip' THEN 1 ELSE 0 END) AS Installed
    FROM dbo.SoftwareInventory
    GROUP BY Computer_id
    )
SELECT Computer_id, CASE Installed WHEN 0 THEN 'no' ELSE '7Zip' END AS Software
FROM inventory_per_computer
ORDER BY Computer_id;