有没有一种简单的方法可以将表复制到具有不同名称的同一数据库.我试过下面列出的一些,
db2 "CREATE TABLE SCHEMA.NEW_TB COPY AS SELECT * FROM SCHEMA.OLD_TB WHERE 1 = 2"
db2 "SELECT INTO SCHEMA.NEW_TB FROM SCHEMA.OLD_TB"
db2 "SELECT * FROM SCHEMA.OLD_TB INSERT INTO SCHEMA.NEW_TB"
这些都不起作用我正在使用db2 v9.5
我想在DB2表中插入多行.我有一个看起来像这样的查询
insert into tableName
(col1, col2, col3, col4, col5)
values
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5);
Run Code Online (Sandbox Code Playgroud)
这个查询不起作用.我不知道在DB2中是否有更多语法正确的方法来执行此操作.但是插入我的测试数据会很有用.
我正在寻找相当于T-SQL的db2:
INSERT INTO People (Surname) VALUES ('O''Hara');
Run Code Online (Sandbox Code Playgroud) 我正在使用BASH,我不知道如何找到子串.它一直都失败了,我有一个字符串(这应该是一个数组吗?)
下面LIST是数据库名称的字符串列表,SOURCE是回复,其中一个数据库.以下仍然不起作用:
echo "******************************************************************"
echo "* DB2 Offline Backup Script *"
echo "******************************************************************"
echo "What's the name of of the database you would like to backup?"
echo "It will be named one in this list:"
echo ""
LIST=`db2 list database directory | grep "Database alias" | awk '{print $4}'`
echo $LIST
echo ""
echo "******************************************************************"
echo -n ">>> "
read -e SOURCE
if expr match "$LIST" "$SOURCE"; then
echo "match"
exit -1
else
echo "no match" …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在DB2中运行以下SQL Server代码?
我正在转换SQL Server脚本,以便它们可以在DB2系统上运行,并且在使用DB2中的变量时遇到了一些问题.
T-SQL代码
这显然不是实际的代码,但作为一个例子很好.
DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756
SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
Run Code Online (Sandbox Code Playgroud) 我有一个叫做玩家的桌子如下:
First_Id Second_Id Name
1 1 Durant
2 1 Kobe
1 2 Lebron
2 2 Dwight
1 3 Dirk
Run Code Online (Sandbox Code Playgroud)
我希望在这个表上写一个select语句来检索其第一个id和第二个id匹配一堆指定的第一个和第二个id的所有行.
因此,例如,我希望选择第一个和第二个ID如下的所有行:(1,1),(1,2)和(1,3).这将检索以下3行:
First_Id Second_Id Name
1 1 Durant
1 2 Lebron
1 3 Dirk
Run Code Online (Sandbox Code Playgroud)
是否可以以下列方式编写选择查询:
SELECT *
FROM PLAYERS
WHERE (First_Id, Second_Id) IN ((1,1), (1,2) and (1,3))?
Run Code Online (Sandbox Code Playgroud)
如果有一种方法可以编写类似于上面的SQL我想知道.有没有办法为IN子句指定表示多行的值,如图所示.
我正在使用DB2.
我们的应用程序运行的复杂查询的一部分包含以下行:...(内部查询)
SELECT
...
NULL as column_A,
NULL as column_B,
...
FROM
...
Run Code Online (Sandbox Code Playgroud)
在DB2中不允许使用这种创建具有空值的列的语法,尽管它在MSSQL和Oracle DB中完全没问题.从技术上讲,我可以将其更改为:
'' as column_A,
'' as column_B,
Run Code Online (Sandbox Code Playgroud)
但这并没有完全相同的含义,可能会损害我们的计算结果.如何使用其他语法在DB2中创建具有空值的列?
我有以下SQL :( bitemp)
SELECT COUNT (*) AS Count
FROM Table T
WHERE (T.Update_time =
(SELECT MAX (B.Update_time )
FROM Table B
WHERE (B.Id = T.Id))
GROUP BY T.Grouping
Run Code Online (Sandbox Code Playgroud)
现在我得到一个有很多数字的结果集.我想得到这份清单的平均值.目前,我将列表导入excel并使用其平均功能.但是DB2有一个AVG函数,但我没有让它工作.
我SELECT AVG(COUNT(*))也试过了SELECT AVG(*) FROM (theQuery).