- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我创建了一个临时表,其中包含多个带有 UNION ALL
语句的表,如下所示。我想稍后将此表映射到 Spring 存储库的实体。换句话说,我想将临时表映射到 spring jpa 或 hibernate 中的实体。
select * from name UNION ALL
select * from soft where id >3
into temp namesoft_tmp
我尝试了以下方法。
select * from namesoft_tmp
但我看不到可以让我得出这是主键的结论的列是什么。
表名soft_tmp的唯一id(主键)是什么?
如何将自动生成的 ID 添加到临时表?
如何根据唯一id执行select语句?**
最佳答案
一般情况下,UNION ALL查询的结果没有主键;不保证结果集中不存在重复行。
想象一个描述元素表的表格 - 称为元素
。
SELECT * FROM elements WHERE atomic_number < 10
UNION ALL
SELECT * FROM elements WHERE symbol MATCHES '[A-F]*'
INTO TEMP union_all;
此处,元素硼 (B)、碳 (C)、铍 (Be) 和氟 (F) 均列出两次。
但是,您可以使用:
SELECT ROWID, * FROM union_all ORDER BY atomic_number;
获取结果集中的唯一标识符 ROWID。请注意,此唯一标识符在任何给定时间都是唯一的,但不能保证稳定。如果删除行并再次添加它们,则替换行的 ROWID 可能与之前不同。但在您编辑表之前,ROWID 将是唯一的。
+-------+--------+--------+--------------+-----------+--------+-------+
| rowid | atomic | symbol | name | atomic | period | group |
| | number | | | weight | | |
+-------+--------+--------+--------------+-----------+--------+-------+
| 257 | 1 | H | Hydrogen | 1.0079 | 1 | 1 |
| 258 | 2 | He | Helium | 4.0026 | 1 | 18 |
| 259 | 3 | Li | Lithium | 6.9410 | 2 | 1 |
| 260 | 4 | Be | Beryllium | 9.0122 | 2 | 2 |
| 266 | 4 | Be | Beryllium | 9.0122 | 2 | 2 |
| 267 | 5 | B | Boron | 10.8110 | 2 | 13 |
| 261 | 5 | B | Boron | 10.8110 | 2 | 13 |
| 268 | 6 | C | Carbon | 12.0110 | 2 | 14 |
| 262 | 6 | C | Carbon | 12.0110 | 2 | 14 |
| 263 | 7 | N | Nitrogen | 14.0070 | 2 | 15 |
| 264 | 8 | O | Oxygen | 15.9990 | 2 | 16 |
| 265 | 9 | F | Fluorine | 18.9980 | 2 | 17 |
| 269 | 9 | F | Fluorine | 18.9980 | 2 | 17 |
| 270 | 13 | Al | Aluminium | 26.9820 | 3 | 13 |
| 271 | 17 | Cl | Chlorine | 35.4530 | 3 | 17 |
| 272 | 18 | Ar | Argon | 39.9480 | 3 | 18 |
| 273 | 20 | Ca | Calcium | 40.0780 | 4 | 2 |
| 274 | 24 | Cr | Chromium | 51.9960 | 4 | 6 |
| 275 | 26 | Fe | Iron | 55.8450 | 4 | 8 |
| 276 | 27 | Co | Cobalt | 58.9330 | 4 | 9 |
| 277 | 29 | Cu | Copper | 63.5460 | 4 | 11 |
| 278 | 33 | As | Arsenic | 74.9220 | 4 | 15 |
| 279 | 35 | Br | Bromine | 79.9040 | 4 | 17 |
| 280 | 47 | Ag | Silver | 107.8700 | 5 | 11 |
| 281 | 48 | Cd | Cadmium | 112.4100 | 5 | 12 |
| 282 | 55 | Cs | Caesium | 132.9100 | 6 | 1 |
| 283 | 56 | Ba | Barium | 137.3300 | 6 | 2 |
| 284 | 58 | Ce | Cerium | 140.1200 | 6 | L |
| 285 | 63 | Eu | Europium | 151.9600 | 6 | L |
| 286 | 66 | Dy | Dyprosium | 162.5000 | 6 | L |
| 287 | 68 | Er | Erbium | 167.2600 | 6 | L |
| 288 | 79 | Au | Gold | 196.9700 | 6 | 11 |
| 289 | 83 | Bi | Bismuth | 208.9800 | 6 | 15 |
| 290 | 85 | At | Astatine | 209.9900 | 6 | 17 |
| 291 | 87 | Fr | Francium | 223.0200 | 7 | 1 |
| 292 | 89 | Ac | Actinium | 227.0300 | 7 | A |
| 293 | 95 | Am | Americium | 243.0600 | 7 | A |
| 294 | 96 | Cm | Curium | 247.0700 | 7 | A |
| 295 | 97 | Bk | Berkelium | 247.0700 | 7 | A |
| 296 | 98 | Cf | Californium | 251.0800 | 7 | A |
| 297 | 99 | Es | Einsteinium | 252.0800 | 7 | A |
| 298 | 100 | Fm | Fermium | 257.1000 | 7 | A |
| 299 | 105 | Db | Dubnium | 270.1300 | 7 | 5 |
| 300 | 107 | Bh | Bohrium | 270.1300 | 7 | 7 |
| 301 | 110 | Ds | Darmstadtium | 281.1700 | 7 | 10 |
| 302 | 112 | Cn | Copernicium | 285.1800 | 7 | 12 |
| 303 | 114 | Fl | Flerovium | 289.1900 | 7 | 14 |
+-------+--------+--------+--------------+-----------+--------+-------+
关于java - informix临时表的唯一ID是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56216718/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我必须做一个大的更新脚本 - 而不是 SPL(存储过程)。它是为 Informix 数据库编写的。 它涉及将行插入到多个表中,每个表都依赖于前一个表的插入顺序。 我知道我可以通过这样做来访问该序列:
我在 Informix DB 的表中有大约 300 万行。 在加载新数据之前,我们必须删除它。 它在其中一列上有一个主键。 为了删除相同的内容,我想到了使用 rowid 。但是当我尝试 select
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我想在 informix 数据库表中选择列时使用列别名。例如在以下查询中: SELECT hire_dt as "Hire Date" FROM employee 列 Hire_dt 应显示为雇用日期
我必须将我的应用程序连接到客户的 Informix 7.2 旧数据库。 据我所知,理论上应该有一个数据库服务在端口50000上运行。问题是我在操作系统中找不到任何数据库服务。 到目前为止,我只能使用
在 Informix 存储过程中,我有一些情况是这样的:- If val1 > 0 // 1st If Select count(*) of v
我正在将一些 informix SQL 转换为 SQL Server。 下面的查询中的方括号是什么意思? SELECT unique cl_name[1,5] FROM client cl_name
我有一台服务器,并且我知道上面安装了 Informix,但我不知道是谁安装的。有一个闭源客户端连接到该服务器,但除了用户名和密码之外我无法获取任何有关它的信息。我不知道如何连接它,我不知道它的端口号和
在 Informix 存储过程中,我有一些情况是这样的:- If val1 > 0 // 1st If Select count(*) of v
我正在将一些 informix SQL 转换为 SQL Server。 下面的查询中的方括号是什么意思? SELECT unique cl_name[1,5] FROM client cl_name
我是 Informix-SQL 新手。我正在尝试在 Informix 中创建表单。我提到了some resources online 这就是我现在访问数据库的方式dbaccess database_n
是否有引用文档列出 4GL 实际使用的所有功能代码(理想情况下,所有出现在随 4GL RDS 提供的 termcap 中的代码)? 例如: gs - start graphics mode (box-
在 Informix SPL 例程中执行与传统 sleep() 系统调用语义等效的最佳方法是什么?换句话说,只需“暂停” N 秒(或毫秒或其他什么,但几秒就可以了)。我正在寻找一种解决方案,它不涉及将
在 Informix 中将 varchar 类型转换为 Int 类型时遇到问题。 实际上我不知道该值是否真的是 varchar 或不是我想转换为 INT 的值。这是一个沙盒系统。 例如: 我正在尝试运
我想知道是否可以像在 MS SQL 中一样在 Informix 中选择每个第 n 行?! 就像是 SELECT * FROM order by ASC limit 1 OFFSET 4 只是没有用
我在我维护的一些代码中发现他们使用这种格式进行更新查询 UPDATE X=to_date('$var','%iY-%m-%d %H:%M:%S.%F3') ... 但我无法在 Informix 文档中
我已经为 Informix 数据库(版本 IBM Informix Dynamic Server 版本 14.10.FC10AEE)创建了一条插入语句。 这看起来如下: INSERT INTO per
我们的 Solaris 服务器上运行着 Informix,在 /usr/informix/bin 下有几个可执行文件,例如 'dbaccess' 和 'isql' . 例如,当输入“isql -V”时
假设我有以下查询: insert into myTable values ("TEST 1 TEST 2") 然后我选择要输出到 Excel 工作表的描述: select description fr
我是一名优秀的程序员,十分优秀!