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

时间:2017-09-22 11:06:11

标签: sql sql-server

我有兴趣做一些事情like in this question,我只得到结果,如果列实际上包含给它的所有单词。

例如,如果我有两列,一列是时间戳,另一列是天气,我只想获得天气为cloudyrainy,{{1}的时间戳。 },而不仅仅是snowycloudy。上面的例子有点像:

rainy

会返回类似的内容:

SELECT distinct timestamp FROM mytable
WHERE Weather LIKE 'snowy'
   OR Weather LIKE 'cloudy'
   OR Weather LIKE 'rainy'

但不是任何结果2017-09-22 snowy 2017-09-22 snowy 2017-09-22 cloudy 2017-09-22 rainy 2017-09-22 cloudy ,因为那天可能只有from 2017-09-21snowy等。

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

2 个答案:

答案 0 :(得分: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

如果表格中没有timestamp / Weather的重复项,请使用COUNT(*) = 3代替COUNT(DISTINCT)

答案 1 :(得分:-1)

你可以使用像bellow,

SELECT时间戳   来自mytable   天气IN('下雪','多云','多雨')

输出: 例子

1

2

3

虚拟表

1 snow

2多云

3多雨

4 aaaa

5 bbbb