我在MS SQL服务器Db中有以下表格:
CREATE TABLE [dbo].[testTable](
[Sequence] [int] NULL,
[Text] [nchar](10) NULL
) ON [PRIMARY]
这是我的数据
Sequence Text
1 Hello
2 World
3 Hello
4 Dave
5 Hello
6 Suzanne
要求:如果我的数据集包含一系列单词,我需要返回True或false,例如:
我来到这里:
SELECT [sequence] ,[Text]
FROM [dbo].[testTable]
where text in ('hello', 'dave')
给了我:
Sequence Text
1 Hello
3 Hello
4 Dave
5 Hello
我的问题是如何查询此数据集以检查它们旁边的数字
谢谢!
答案 0 :(得分:1)
一种方法是join
:
select (case when count(*) = 0 then 1 else 0 end)
from testtable w1 join
testtable w2
on w1.sequence = w2.sequence + 1
where w2.text = 'Hello' and w2.text = 'Dave';
答案 1 :(得分:1)
我真的认为这是两个单独的问题,一个是回答单词是否存在,另一个是查找可能的id值。首先,我们可以汇总整个表格:
SELECT
CASE WHEN COUNT(DISTINCT text) = 2 THEN 'True' ELSE 'False' END AS status
FROM testTable
WHERE text IN ('hello', 'dave');
如果您想要匹配关键字的序列号,假设上述查询显示这些词都存在,您可以使用:
SELECT Sequence
FROM testTable
WHERE text IN ('hello', 'dave');