SQL查询从表中添加复杂条件

时间:2018-10-12 15:53:48

标签: python sql database oracle

我有一个长列表(或3到4列数据的表),需要同时满足查询条件,如下所示:

A    B   C
x1   y1  z1
x2   y2   z2
x3   y3   z3
.
.
.
xn    yn   zn

有没有一种方法可以创建表达式/函数等或单独的列表等,可以将其调用到SQL查询中(而不是显式地编写):

所以假设,我将此列表作为表X(本地)中的矩阵/列表,可以使用

我可以使用类似这样的示例SQL查询

SELECT *
FROM TABLE B
WHERE CONDITION  IN  ROWS OF TABLE X 

只需在此处添加,我正在使用python驱动程序通过数据库和表X(我在驱动器上本地存储数据)获取数据,而我在本地创建的表X。

1 个答案:

答案 0 :(得分:0)

我假设您正在要求python代码。

使用简单的内存SQLite数据库,您可以实现此目的。在此处查看如何将Sqlite db与python一起使用。 How to work with sqlite3 and Python

考虑您的示例,其中有数据列表。

import sqlite3
connection = sqlite3.connect("company.db")

cursor = connection.cursor()

staff_data = [ ("William", "Shakespeare", "m", "1961-10-25"),
               ("Frank", "Schiller", "m", "1955-08-17"),
               ("Jane", "Wall", "f", "1989-03-14") ]

for p in staff_data:
    format_str = """INSERT INTO employee (staff_number, fname, lname, gender, birth_date)
    VALUES (NULL, "{first}", "{last}", "{gender}", "{birthdate}");"""

    sql_command = format_str.format(first=p[0], last=p[1], gender=p[2], birthdate = p[3])
    cursor.execute(sql_command)

查看更多here