Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL Server查询中使用LIKE提取特定ID行_Sql Server - Fatal编程技术网

Sql server 如何在SQL Server查询中使用LIKE提取特定ID行

Sql server 如何在SQL Server查询中使用LIKE提取特定ID行,sql-server,Sql Server,我有一个关于这个SQL脚本的问题,我需要您的帮助 我有以下数据的记录: ID AGE ----------------- AB1001 20 AB1002 21 OPEI112 12 ABI1001 25 ABI1002 28 OPEI220 14 AB1003 30 TI2100 19 AB1004 32 ABI1003 26 ABI1004 10 我想显示所有以ABI、OPEI

我有一个关于这个SQL脚本的问题,我需要您的帮助

我有以下数据的记录:

ID         AGE
-----------------
AB1001      20
AB1002      21
OPEI112     12
ABI1001     25
ABI1002     28
OPEI220     14
AB1003      30
TI2100      19
AB1004      32
ABI1003     26
ABI1004     10
我想显示所有以ABI、OPEI、TI开头的ID,我不想看到以AB开头的ID。我使用SQL
SELECT
语句,尝试了以下操作:

SELECT ID 
FROM TableID 
WHERE ID LIKE 'ABI%'AND ID LIKE 'OPEI%' AND ID LIKE 'TI%'

这没有返回预期的输出,因为它包含AB,所以我尝试了显示所有记录的方法

SELECT ID 
FROM TableID 
WHERE ID NOT LIKE 'AB%'
这也没有返回预期结果,因为它还排除了带有ABI的ID,但显示了所有记录

我需要任何显示所有记录ID而不显示AB的建议

谢谢

试试这个

create table #temp (id varchar(20), age int)
insert into #temp values 
('AB1001', '20'), ('AB1002', 21), ('ABI1001', 25), ('ABI1002', 28), ('AB1003', 30), ('AB1004', 32),
('ABI1003', 26), ('ABI1004', 10)

select * from #temp where id like 'ABI%'

drop table #temp
结果如下

id      age
ABI1001 25
ABI1002 28
ABI1003 26
ABI1004 10
这里所有id都以ABI开头。

试试这个

create table #temp (id varchar(20), age int)
insert into #temp values 
('AB1001', '20'), ('AB1002', 21), ('ABI1001', 25), ('ABI1002', 28), ('AB1003', 30), ('AB1004', 32),
('ABI1003', 26), ('ABI1004', 10)

select * from #temp where id like 'ABI%'

drop table #temp
结果如下

id      age
ABI1001 25
ABI1002 28
ABI1003 26
ABI1004 10

这里所有id都以ABI开头。

请参见第一个查询,您需要使用OR语句而不是AND

如下:

SELECT ID 
FROM TableID 
WHERE ID LIKE 'ABI%'OR ID LIKE 'OPEI%' OR ID LIKE 'TI%'

请参阅第一个查询,您需要使用OR语句而不是AND

如下:

SELECT ID 
FROM TableID 
WHERE ID LIKE 'ABI%'OR ID LIKE 'OPEI%' OR ID LIKE 'TI%'

您只需将“和”改为“或”:


您只需将“和”改为“或”:


从TableID中选择ID,其中ID像'ABI%'
看起来很正确。你能解释一下它的输出是如何错误的吗?谢谢,从我的问题中你会看到我尝试使用该查询,我有其他ID,如TI,OPEI,将被排除,这就是为什么我调整问题“这没有返回预期的输出,因为它包含AB,所以我尝试了显示所有记录的这个”。不,没有。您的查询是正确的,您的假设是错误的。
从TableID中选择ID,其中ID像'ABI%'
看起来是正确的。你能解释一下它的输出是如何错误的吗?谢谢,从我的问题中你会看到我尝试使用该查询,我有其他ID,如TI,OPEI,将被排除,这就是为什么我调整问题“这没有返回预期的输出,因为它包含AB,所以我尝试了显示所有记录的这个”。不,没有。您的提问是正确的,您的假设是错误的。非常感谢,我只是意识到我的问题可能不会呈现其他ID,如OPEI、TI和其他,如果我使用您的建议,这些ID将被排除在外,这就是我再次调整问题的原因,我希望能得到您的帮助。thanks@Abraham1973这就是你在调整问题中要求的,不是吗?非常感谢,我只是意识到我的问题可能不会呈现其他ID,如OPEI、TI和其他,如果我使用你的建议,这些ID将被排除在外,这就是我再次调整问题的原因,我希望能得到你的帮助。thanks@Abraham1973这就是你在调整问题中要求的,不是吗?非常感谢,我只是意识到我的问题可能不会呈现其他ID,如OPEI、TI和其他,如果我使用你的建议,这些ID将被排除在外,这就是我再次调整问题的原因,我希望能得到你的帮助。谢谢谢谢,我只是意识到我的问题可能不会呈现其他ID,如OPEI、TI和其他,如果我使用您的建议,这些ID将被排除在外,这就是我再次调整问题的原因,我希望能得到您的帮助。谢谢