SQL SELECT only字段,其中包含单词

Kha*_*775 1 sql sql-server

我有兴趣做这样的问题,我只得到结果,如果列实际上包含给它的所有单词.

举例来说,如果我有两列,一个是时间戳,另一个是天气,我想只有在天气时间戳cloudy,rainy,snowy,而不是它是否只是cloudy,rainy.上面的一个例子有点像:

SELECT distinct timestamp FROM mytable
WHERE Weather LIKE 'snowy'
   OR Weather LIKE 'cloudy'
   OR Weather LIKE 'rainy'
Run Code Online (Sandbox Code Playgroud)

哪个会返回类似的东西:

2017-09-22 snowy
2017-09-22 snowy
2017-09-22 cloudy
2017-09-22 rainy
2017-09-22 cloudy
Run Code Online (Sandbox Code Playgroud)

但不是任何结果from 2017-09-21,因为它可能只是那一天snowyrainy那一天等.

我做的上面的示例查询将返回所有时间戳,只要天气符合条件.

Gor*_*off 7

你可以使用group byhaving.我建议:

SELECT timestamp
FROM mytable
WHERE Weather IN ('snowy', 'cloudy', 'rainy')
GROUP BY timestamp
HAVING COUNT(DISTINCT Weather) = 3;  -- get all of them
Run Code Online (Sandbox Code Playgroud)

如果表中没有timestamp/的重复项Weather,则使用COUNT(*) = 3而不是COUNT(DISTINCT).