qq_25250689
2019-01-11 02:46
采纳率: 50%
浏览 5.0k

sql查询是否包含字符串

如何查询匹配如下的字段值(字符串类型)
能同时查询到:5@1、5@1#6@2、1@1#5@1
不查询:5@12、15@1、

ms sql server表结构数据如下

GO
/****** Object: Table [dbo].[t_test] Script Date: 01/11/2019 02:43:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].t_test NULL
) ON [PRIMARY]
GO
INSERT [dbo].t_test VALUES (N'5@1')
INSERT [dbo].t_test VALUES (N'5@1#6@2')
INSERT [dbo].t_test VALUES (N'1@1#5@1')
INSERT [dbo].t_test VALUES (N'5@12')
INSERT [dbo].t_test VALUES (N'15@1')

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • qq_25250689 2019-01-11 11:23
    已采纳

    select test,PATINDEX('%5@1%', test) from t_test where PATINDEX('%15@1%', test)=0 and PATINDEX('%15@10%', test)=0 and PATINDEX('%15@11%', test)=0 and PATINDEX('%15@12%', test)=0 and PATINDEX('%15@13%', test)=0 and PATINDEX('%15@14%', test)=0 and PATINDEX('%15@15%', test)=0 and PATINDEX('%15@16%', test)=0 and PATINDEX('%15@17%', test)=0 and PATINDEX('%5@10%', test)=0 and PATINDEX('%5@11%', test)=0 and PATINDEX('%5@12%', test)=0 and PATINDEX('%5@13%', test)=0 and PATINDEX('%5@14%', test)=0 and PATINDEX('%5@15%', test)=0 and PATINDEX('%5@16%', test)=0 and PATINDEX('%5@17%', test)=0

    点赞 评论
  • 木泥石人 2019-01-11 08:51

    用where and 可以吗?

    点赞 评论
  • L星火燎原 2019-01-11 09:09

    select * from table where column not in(5@12,15@1)

    点赞 评论
  • 燕双嘤嘤 2019-01-11 09:45

    可以用正则表达式试试

    点赞 评论
  • 浩天的博客 2019-01-11 10:27

    select * from [dbo].t_test where column IN ('5@1'、'5@1#6@2'、'1@1#5@1')
    回复我 直接帮你解决

    点赞 评论

相关推荐 更多相似问题