SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE '%value1%' AND column_name LIKE '%value2%';
现在有表DIM_HD,如图有以下两列字段。
字段TEST_FLAG里的数字以英文逗号分隔,头尾均没有逗号。并且这个表的的数据还会更新,类似123 124 这样子的数据还会增加,并且长度也有可能变长,例如变成1234,12345等,但是均以逗号分隔,现在需要用一段SQL,拆分成以下效果。
select TEST_ID,’,’||TEST_FLAG||’,’ AB,length(TEST_FLAG)-length(REPLACE(TEST_FL
表数据如下:
问:比如这张表我要找出同时满足relevance_id_为00000000000000000001002100040000和00000000000000000001002100030000的abstract_id_应该怎么做?
select abstract_id_,count(abstract_id_) as total_ from note_abstract_rel...
查询:一个字段的一个数值对应另一个字段的多个数值
举例如下:
----查 一个商品 对应 多个仓库 的记录(注:一个商品名称 对应 同样的一个仓库 的记录,也会有重复)
select distinct 商品名称,仓库代码,a.仓库名称
from 商品表 b INNER JOIN 仓库表 a ON a.仓库代码 = b.仓库代码 ----4.连接仓库表,查出仓库的名称
where 商品名称 in( ----3.我们最终
b.basic_duty_id = a.basic_duty_id
AND b.distribute_time = a.distribute_time
GROUP BY b.basic_duty_id
) as periodStatuss
下午遇到一个问题,IN子查询返回多个值。网上查了很多文档,资料,都没收获。问了技术群的同僚,竟然还被嘲笑了。IN 怎么可能匹配多个字段呢!个人印象中曾经在哪里见到过,所以就觉得不服气。自己慢慢地去试,试出来了。我们常用的IN 操作是这样的:select * from tab t
where t.col1 in ('value1''value2');但是如果是多个列的取值来自同一个子查询呢?
例如,要查询表中age字段等于25或30的数据,可以使用以下SQL语句:
SELECT * FROM table_name WHERE age = 25 OR age = 30;
2. AND关键字查询
使用AND关键字可以查询满足所有条件的数据。
例如,要查询表中age字段等于25且gender字段为male的数据,可以使用以下SQL语句:
SELECT * FROM table_name WHERE age = 25 AND gender = 'male';
3. IN关键字查询
使用IN关键字可以查询满足多个值的数据。
例如,要查询表中age字段等于25或30或35的数据,可以使用以下SQL语句:
SELECT * FROM table_name WHERE age IN (25, 30, 35);