如何过滤结果集中的某些结果? 例如,我的数据集如下所示:
我想获取所有记录,但是对于Name ='Peter',我不希望'-'出现在最终结果中。 (史蒂文(Steven)可以使用“ Apple-”,彼得(Peter)可以使用“苹果(Apple)”)
除了使用光标之外,什么是最好的方法(或者最有效的方法?)
例如,如果我的条件是选择所有用户,但是当“名称”是Peter且产品包含“-”时,则不要选择它。但是,当用户名是Peter且产品不包含“-”时,请选择它作为结果。
答案 0 :(得分:2)
您可以使用CASE
语句来完成
SELECT Name,
Product = CASE WHEN Name = 'Peter' THEN REPLACE(Product, '-', '') ELSE Product END
编辑:
要从结果中排除Peter
和带有-
的乘积,请使用WHERE
子句
WHERE NOT (Name = 'Peter' and Product like '%-%')
答案 1 :(得分:0)
我想您要的是列出所有名称均为peter并且产品中没有'-'的结果的列表。以下SQL将实现这一点:
SELECT *
FROM <table>
WHERE Name = 'Peter'
AND NOT Product LIKE '%-%'