我有一个包含很长标识符列表和各种其他数据的电子表格。我在电子表格上有一列我需要填写的另一个标识符。这是一个示例:
ID1 | ID2 | Date
5 | | ...
6 | | ...
6 | | ...
7 | | ...
9 | | ...
9 | | ...
9 | | ...
10 | | ...
10 | | ...
11 | | ...
我需要从数据库中的表中获取ID2。我可以轻松复制ID1列并使用文本编辑器将\r\n
替换为','
,然后运行SELECT ID1, ID2 FROM MyTable WHERE ID1 IN ('5,6,6,7,9,9,9,10,10,11')
问题是结果只显示ID1的唯一值,这意味着我必须浏览电子表格并手动粘贴值。相反,我想要的是以下结果:
ID1 | ID2 | Date
5 | a | ...
6 | b | ...
6 | b | ...
7 | c | ...
9 | e | ...
9 | e | ...
9 | e | ...
10 | f | ...
10 | f | ...
11 | g | ...
这样我就可以复制并粘贴到电子表格中,所有行都会正确排列。
我尝试过这样的事情:
SELECT ID1, ID2 FROM MyTable a, ('5','6','6',...) b
但这似乎不起作用。我不知道还有什么可以尝试。
答案 0 :(得分:0)
试图根据我从你的问题中抓住的内容来回答这个问题。我也在这里假设SQL Server。
您应该将现有的电子表格上传到数据库表,让我们调用该表OriginalTable。现在您的原始表格如下所示:
System.Diagnostics.Process process;
process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized; //Change to Hidden after debug
startInfo.FileName = AppiumNodePath;
startInfo.Arguments = AppiumJSPath + " --address " + AppiumServerIP + " --port " + currentAppiumPort + " --automation-name Appium --log-no-color --session-override --log C:\\test\\AppiumLog.txt";
process.StartInfo = startInfo;
process.Start();
接下来,我假设您有一个表,每个ID1都有相应的ID2。我们假设该表名为IDTable。可能看起来像这样:
ID1 | ID2 | Date
5 | | ...
6 | | ...
6 | | ...
7 | | ...
9 | | ...
9 | | ...
9 | | ...
10 | | ...
10 | | ...
11 | | ...
最后,运行如下查询:
ID1 | ID2
5 | a
6 | b
7 | c
9 | e
10 | f
11 | g