相关疑难解决方法(0)

如何在对SQLite3的Python调用中获取可变长度占位符

有没有办法在SQL查询中使用可变长度占位符?

现在有一个3元组,我写这样的东西:

c.execute('SELECT * FROM table WHERE word IN (?, ?, ?)', tup)
Run Code Online (Sandbox Code Playgroud)

但是,如果tup可以有不同的长度,也许是4元组或2元组怎么办?在这种情况下是否有使用占位符的语法?如果没有,编写代码的首选方法是什么?

python sqlite

11
推荐指数
1
解决办法
1675
查看次数

为什么在使用T-SQL创建表时,最后一个字段后面的尾随逗号不重要?

这些陈述中的一个不应该起作用而且一个失败吗?

直觉说语句2应该失败,因为在int之后有一个逗号而没有列出第二列.

然而,在最后一列数据类型之后,工作和尾随逗号","都没有区别.

-- Statement 1
CREATE TABLE dbo.MyTable1( col1 int);

-- Statement 2
CREATE TABLE dbo.MyTable2( col1 int,);
Run Code Online (Sandbox Code Playgroud)

然而(这是预期的):在最后一个字段之后的两个逗号",,"确实导致失败:

-- Statement 3
CREATE TABLE dbo.MyTable3( col1 int,,);

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','.
Run Code Online (Sandbox Code Playgroud)

测试显示它不仅仅是允许通过的最后一个字段之后的任何字符.例如,这失败了:

-- Statement 3
CREATE TABLE dbo.MyTable3( col1 int ~);

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '~'.
Run Code Online (Sandbox Code Playgroud)

也许SQL Server正在"为桌子保留席位"?主键可能呢?我真的不知道.

我使用的是Microsoft SQL Server 2008 R2(SP1) - 10.50.2500.0(X64).

t-sql ddl sql-server-2008-r2

4
推荐指数
1
解决办法
1878
查看次数

在更新语句中嵌套select语句

这是我的更新声明,完美无缺.如果表1和表2包含相同的序列号,则表1更新为是,如果不是,则更新为否.

UPDATE dbo.table1
SET [Match] = CASE WHEN dbo.table2.[Serial Number] IS NOT NULL
THEN 'yes' ELSE 'no' END
FROM dbo.table1 LEFT OUTER JOIN dbo.table2
    ON dbo.table2.[Serial Number] = dbo.table1.[Serial Number]
AND dbo.table1.[Date] = 'JAN11' AND 
      dbo.table1.[Install] = 'new' AND
      dbo.table2.[Date] = 'JAN11' AND 
      dbo.table2.[Install] = 'new'
Run Code Online (Sandbox Code Playgroud)

问题是目前表1中未被调用的所有内容也都更新为否所以我想要做的是先调用一个select语句...这样的事情

select * from table1 where [Date] = 'JAN11' AND [Install] = 'new'
Run Code Online (Sandbox Code Playgroud)

并将其嵌套在更新中,以便仅使用no或yes更新相关列...

sql sql-server

1
推荐指数
1
解决办法
383
查看次数

标签 统计

ddl ×1

python ×1

sql ×1

sql-server ×1

sql-server-2008-r2 ×1

sqlite ×1

t-sql ×1