请教个sql语句

快乐乔巴 2016-05-10 02:17:18
是这样的,比如有个A字段类型是text 内容是1,2,3,4,5这样的 里面相当于数组的内容 split出来一样
然后我想通过这个字段 查询A字段中 有大于3的 有等于3的 或者是 大于3 小于5的 的行
比如
A
2,5,6
1,3
6,8

然后我写一条sql语句 比如查A字段里<3的 行 那就是 2,5,6 和 1,3

这样的sql 该如何写呢??? 因为特殊情况 不能查出来以后再去比 所以最好能一条sql语句能解决
想不出来了 请教下大家~~
另外数据库不是mssql 是postgresql 总之应该差不多
80分 献上。。
...全文
242 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
testqqyouju 2016-05-12
  • 打赏
  • 举报
回复
据的时候,提示 INSERT 语
道素 2016-05-12
  • 打赏
  • 举报
回复

;WITH tb(A) AS (
    select '2,5,6' UNION ALL
    select '1,3' UNION ALL
    select '6,8' 
)
SELECT distinct t.A FROM (
SELECT *,CONVERT(XML,'<r><n>'+REPLACE(A,',','</n><n>')+'</n></r>') AS x FROM tb
) t CROSS APPLY (SELECT s.b.value('.','int') AS n FROM t.X.nodes('r/n')s(b)) u
WHERE u.n<3

/*
A
2,5,6
1,3
*/
wtujedp 2016-05-10
  • 打赏
  • 举报
回复
给个思路,你把一行分成多行,接着比较,最后再找到主行 主键字段 A A001 2,5,6 A002 1,3 A003 6,8 拆分成 A001 2 A001 5 A001 6 A002 1 A002 3 A003 6 A003 8 各种情况去判断 A字段 你的条件是<3 A001 2 A001 5 A002 1 最后只要原始表的主键在筛选后的条件表里存在就可以了
shoppo0505 2016-05-10
  • 打赏
  • 举报
回复
这个...改数据库巴

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧