问题标签 [sap-iq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1673 浏览

sql - 如果一列为空,则使用默认值对两列进行外部联接

我有两个表 - 一个是事务表,另一个是查找表。这些表在两列上连接,其中一列总是有值,而另一列可能没有。

采样这个

category | subcategory | marks A | 01 | 10 A | 02 | 20 B | 03 | 30 B | 04 | 40 C | 05 | 50

category | subcategory | cut-off A | | 15 A | 01 | 25 B | 03 | 35 B | | 55 C | | 75

transaction我希望通过加入categorysubcategory列来获得表格中每个条目旁边的截止值。对于subcategory不完全匹配的情况,null需要选择对应的记录。

所需的输出格式:

category | subcategory | marks | cut-off A | 01 | 10 | 25 A | 02 | 20 | 15 B | 03 | 30 | 35 B | 04 | 40 | 55 C | 05 | 50 | 75

我一直在尝试按照下面的查询进行思考,问题当然是它不能按照我想要的方式工作,因为它不能正确处理 null 情况。

select t.category, t.subcategory, t.marks, l.cut-off from transaction t left outer join lookup l on t.category = l.category and t.subcategory = l.subcategory

我是否需要多个查询(例如单独union all处理null的查询not null?是否有适用于单个查询的选项?

0 投票
3 回答
133 浏览

sql - 确定表中的所有列并将它们用逗号分隔写在变量中

此代码具有功能 ROWID,即 IQ-Sybase 功能,我不确定其他 DBMS 可以使用它。在上面你有一个例子,我希望我的选择看起来像什么。

我的问题是,您不能将 ROWID 函数与 sys.column 或任何其他 systables 一起使用。有谁知道如何在不使用 ROWID 函数的情况下获得与我相同的选择。

如果您使用的是 IQ,我构建了代码,因此您只需键入 f5 并查看 select 语句,然后删除虚拟表。

0 投票
2 回答
66 浏览

sql - 如何比较行和列?

我想检查 TABLE2 中是否存在 TABLE1 列名,如下所示: -- 这应该将 TABLE2 中的行值与 TABLE1 中的列名进行比较

if exists(select column_for_compare from TABLE2) and if exists(select column_name from syscolumn key join systable where table_name ='TABLE1') begin print 'match found' end

我希望你能看到我在尝试什么......如果不是......如果会尝试更好地解释它

0 投票
1 回答
1482 浏览

sybase - 从表中检索数据时 Sybase 缓冲区高速缓存错误

您好我是 Sybase IQ 的新手,我一次将数据插入 309 列。当我检索时,我收到以下错误。

缓冲区缓存错误

*标记 Sybase ASE 仅是为了您可能也了解 IQ

0 投票
2 回答
136 浏览

sql - while 循环是如何工作的?

我得到的结果是@t=2. 如果我将其替换为@i我得到@i=41. 为什么@variable在第一个while循环中显示2,它会刹车吗?它不应该显示@t=6吗?

如果我把选择@t放在最后,它会显示 6,但是如果你需要迭代的每个结果,如果你把它放在@t最后,你不会得到其他结果,你只会得到最后一个结果。我希望结果 1、2、3、4、5、6 全部通过@t,最终结果应该只显示 6。

这是我编写的过程的简化示例,对于每次@t 迭代,@i 都会进行一次完整迭代,然后 @t 应该进行第二次迭代。@i 按计划工作,但 @t 在第一次迭代后中断。

(如果 @t = 1 ,@i 从某个表的第 1 列获取 40 行,@t = 2 它从某个表的第 2 列获取 40 行..ect)并将其写入 @sql 字符串,当她达到 40 while循环中断并进入@t循环,@t应该执行@sql字符串(例如它创建一个视图,所以最后我应该有6个视图,但在第一次执行之后@t循环中断。)

0 投票
1 回答
3141 浏览

jdbc - SQL Anywhere 错误 - 210:用户“另一个用户”锁定了“tablexyz”中的行

嗨,我有多个 Java 进程,它们依次启动。此过程将数据加载到 tablexyz 中,然后加载到 tablefinal 中。第一个进程完成其工作后,我收到以下错误

SQL Anywhere 错误 - 210:用户“另一个用户”锁定了“tablexyz”中的行。

它是这样的:

流程1:创建表tablexyz并将数据加载到其中进行一些处理,然后最终将数据复制到tablefinal中。在所有步骤之后,我在这里提交事务。

过程2:删除/清空表tablexyz,如果它在那里,然后再次创建表tablexyz并将数据加载到其中进行一些处理,然后最后将数据复制到tablefinal。在所有步骤之后,我在这里提交事务。

我的应用程序在过程 2 中失败,它使 tablexyz 锁定。我不明白这两个进程都使用相同的数据库用户 myuser 那么为什么第二个进程无法删除由第一个进程创建的 tablexyz。请指导我是 Sybase IQ 的新手。提前致谢。

0 投票
1 回答
448 浏览

sql - Sybase-IQ : Query with join returns always 0 rows (but count(*) give rows)

I have a very strange comportment on my sybase-iq database.

I have 2 tables :

Table A : 47 000 000 rows

Table B : 497 rows

If I make the following query :

The result of the count is 5 661 188.

If I make the following query :

The result is 0 row !

If I make the following query :

The result is 5 661 188 rows.

The result is 0 row !

I execute these queries with Interactive SQL (Sybase Central).

I've tried also to execute these same queries with the ETL Talend, and i got same results as above.

Any ideas why we have these very strange results ?

Thanks

0 投票
1 回答
211 浏览

sap-iq - SQL 在 Sybase IQ 中更改用户

Sybase IQ 中是否有用于更改用户名的 SQL?
在 Sybase ASE 中,您可以通过“USE”语句或在具有 SET search_path TO myschema 的 PostgreSQL 中更改数据库;
Sybase IQ 中是否有类似的 SQL?

0 投票
1 回答
1904 浏览

sql - 如何在 shell 脚本中检查 Sybase IQ 连接状态

我正在使用 dbisql 连接到 Sybase IQ 数据库。
脚本如下:

数据库运行时,一切正常。但是当数据库关闭时。发生错误:

如何在执行 sql 脚本之前检查数据库是否正在运行?或其他连接问题。

谢谢!

0 投票
1 回答
77 浏览

sap-iq - 如何找出授予 Sybase IQ 中存储过程的授权

我正在使用 Aqua Studio 连接到我的 Sybase IQ 数据库,由于某些原因,我无法在 Aqua Studio 的导航窗口中查看 SP,但我能够使用系统表 SYS.SYSPROCEDURE 获取 SP 描述。现在我也想看看这个 SP 的赠款。我试图从一些系统表(如 SYS.SYSCOLAUTH)中得到它,但什么也得不到。

任何人都可以提出一些建议吗?