pgsql 在mybatis中 resultType = java.util.Map
时间: 2024-04-14 11:31:35 浏览: 160
在MyBatis中,当使用PGSql数据库时,可以在resultType属性中设置java.util.Map来指定结果类型。这意味着查询结果将以Map的形式返回,其中键是列名,值是对应的列值。这种方式可以方便地处理动态列或者查询结果列名不确定的情况。请注意,使用Map作为结果类型可能会导致一些类型转换问题,因为数据库的列值可能是不同的数据类型。
相关问题
SELECT distinct rp."name" 客户名称, replace(o.note,CHR(34),' ') 拆单备注, T.code AS tcode, replace(t.note,CHR(34),' ') 生产备注, t.plan_date 加工交期, P.NAME AS pname, ps.NAME AS gxm, w.plan_qty, w.code 工单编号, ce."name" 工作中心, w.ID, replace(T.x_bz,CHR(34),' ') 订单备注, T.x_zdy_dw 单位, o.x_qiaohao 项目名或桥号 FROM roke_work_order w left join roke_production_task t on w.task_id = t.id LEFT JOIN roke_production_order o ON o.ID=t.order_id left join roke_product p on w.product_id = p.id left join roke_process ps on w.process_id = ps.id LEFT JOIN roke_work_center ce ON ce.ID=w.work_center_id LEFT JOIN roke_partner rp ON rp.ID=o.customer_id --where w.active = 't' and w.id in (${ids}) order by w.code 以上需要使用pgsql对项目名或桥号和客户名称进行字符串拼接
您可以使用 PostgreSQL 中的 concat 函数来拼接字符串,示例代码如下:
```
SELECT concat(rp."name", ' ', o.x_qiaohao) AS "客户名称和项目名或桥号"
FROM roke_work_order w
LEFT JOIN roke_production_task t ON w.task_id = t.id
LEFT JOIN roke_production_order o ON o.ID=t.order_id
LEFT JOIN roke_partner rp ON rp.ID=o.customer_id
```
以上代码将客户名称和项目名或桥号拼接成一个新的字段 "客户名称和项目名或桥号",使用空格分隔。您可以根据需要修改分隔符和字段名。
select c.relname as "表名", cast(obj_description(c.oid) as varchar) as "表注释", a.attnum as "序号", a.attname as "字段名称", d.description as "字段注释", concat_ws('', t.typname, SUBSTRING(format_type(a.atttypid, a.atttypmod) from '\(.*\)')) as "字段类型" from pg_attribute a left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type t on a.atttypid = t.oid where a.attnum >= 0 and c.relname in('ods_vem_busi_base') order by c.relname desc, a.attnum asc;这段pgsql查出的表结构每个字段都重复出现一次,这是为什么
这是因为这段 SQL 语句使用了多个表之间的连接查询,其中包含了 pg_attribute、pg_description、pg_class、pg_type 这些表。而每个字段都需要从不同的表中获取不同的信息,因此需要在每个表中查询一遍。这就导致了每个字段都会在结果集中出现多次。但是,每个字段所对应的信息都不相同,因此这种重复是必要的。
阅读全文