我有一个sqlite数据选项卡,其中包含许多状态列,随着产品在不同阶段的移动,这些状态列会得到更新。我想根据列status value==1扩展数据表的选定列,例如,如果列1 status==1我想选择列2,如果列3 status==1我想通过另外选择列4和列5扩展选择,如果列6 status==1我想用列7进一步扩展选择。否则,如果只有第1列状态==1,则只选择第2列;如果第3列状态==1,则只选择第4列和第5列,反之亦然。sqlite可以这样做吗?
我的数据表:
'CREATE TABLE IF NOT EXISTS wetweighscan_tb\
wet_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\
emp_id INTEGER NOT NULL,\
printed INTEGER NOT NULL DEFAULT "0",\
dtetime_printed TEXT NULL,\
first_scan INTEGER NOT NULL DEFAULT "0",\
block_id INTEGER NULL,\
frm_id INTEGER NULL,\
nature TEXT NULL,\
firstscan_emp_datetime TEXT NULL,\
second_scan INTEGER NOT NULL DEFAULT "0",\
weight REAL NULL,\
secondscan_emp_datetime TEXT NULL,\
user_id INTEGER NOT NULL,\
entity_id INTEGER NOT NULL,\
longitude REAL NULL,\
latitude REAL NULL,\
syncstatus INTEGER NOT NULL DEFAULT "0"'
这就是我目前的情况:
SELECT wet_id,
emp_id,
user_id,
entity_id
CASE printed
WHEN 0
THEN select dtetime_printed
CASE first_scan
WHEN 0
THEN select block_id, frm_id, nature, firstscan_emp_datetime, longitude, latitude
CASE second_scan
WHEN 0
THEN select weight, secondscan_emp_datetime
ELSE null
END Wetscan
FROM
wetweighscan_tb;
但这不起作用。
编辑:所以我从另一个角度看它,并创建了所有select
查询,我想一次运行,而主键上没有重复的查询:
select * from wetweighscan_tb
WHERE printed = 1 and first_scan = 1 and second_scan = 1;
select wet_id, emp_id, user_id, entity_id,printed,dtetime_printed from wetweighscan_tb
WHERE printed = 1 and first_scan = 0 and second_scan = 0;
select wet_id, emp_id, user_id, entity_id,printed,dtetime_printed, first_scan, block_id, frm_id, nature, firstscan_emp_datetime, longitude, latitude from wetweighscan_tb
WHERE printed = 1 and first_scan = 1 and second_scan = 0;
如何使这三个查询成为一个逻辑查询
目前没有回答
相关问题 更多 >
编程相关推荐