0

我需要使用 SELECT 检索列的值。但是,我有多个值......我不知道用户在复选框中选择什么......

前任:

Insert Into MyTable (dados) Values ('a1') 
我想要结果 = Angulo 1

Insert Into MyTable (dados) Values ('a2';'a3') 
我想要结果 = Angulo 2

Insert into MyTable (dados) Values ('a3'; a1) 
我想要结果 = Angulo 3; 安古洛 1

Insert into MyTable (dados) Values ('a6'; 'a7'; 'a4') 
我想要结果 = Angulo 6; 安古洛 7;安古洛 4




我正在尝试 SELECT CASE WHEN。但它仍然失败......

4

5 回答 5

0

当你说:

 insert into MyTable(dados)
    Values ('a6', 'a7', 'a4')

您是在说“我有一列可以将数据放入称为 dados 的列”。然后,您将提供三个值。这在任何数据库中都会失败(即使分号应该是逗号这一事实除外)。

也许你想要:

insert into MyTable(dados)
    Values ('a6;a7;a4')

那只是一个值,一个字符串。

这表明了一个非规范化的数据库。您可能需要一个表中的三个不同的行,每个值一个,通过某个键连接在一起。

于 2013-02-05T18:19:13.353 回答
0

我怀疑你在问如何在你的陈述中使用IN关键字?SELECT有点不清楚您要做什么。

尝试这个:

SELECT * 
FROM MyTable
WHERE dados IN ('a6','a7','a4')

假设您有一个名为 MyTable 的表和一个名为 dados 的列,该表中有 3 行用于 a6、a7 和 a4,这将返回所有匹配项(在本例中为所有三行)。

祝你好运。

于 2013-02-05T18:24:31.487 回答
0

如果您使用的是 sql server 2008 及更高版本,以下是一些示例:

if(OBJECT_ID('tempdb..#dados') 不为空) DROP TABLE #dados

select top 100 * INTO #dados FROM ( values(1,2,3), (4,5,6), (7,8,9) ) t(a,b,c)

选择 * FROM #dados

插入 #dados (a,b,c) 值 (11,22,33), (44,55,66), (77,88,99)

从#dados中选择*

插入 #dados (a,b,c) SELECT * FROM (值(111,222,333), (444,555,666), (777,888,999)) t(a,b,c)

从#dados中选择*

于 2013-02-05T18:29:31.467 回答
0

如果要插入多行(不是列),语法是

Insert Into 
MyTable (dados) 
Values 
('a1'), 
('a2')
于 2013-02-05T18:31:29.140 回答
0

看起来你想问两件事。

如何插入多个值将通过以下方式完成:

Insert Into MyTable (dados) Values ('a6'),('a7'),('a4') 

如果要返回实际值 'Angulo' + 数字,可以使用以下命令:

CREATE TABLE MyTable 
(
    Dados varchar(255)
)   

Insert Into MyTable (dados) Values ('a12') 
Insert Into MyTable (dados) Values ('a2'),('a3')
Insert Into MyTable (dados) Values ('a3'),('a1') 
Insert Into MyTable (dados) Values ('a6'),('a7'),('a4') 

SELECT 'Angulo'+ SUBSTRING(dados,PATINDEX('%[0-9]%',dados),LEN(dados))
FROM MyTable

它将找到第一个数字(假设它始终是您所追求的第一个数字)并获取其余数字。然后它会附加前缀“Angulo”(例如 Angulo1、Angulo7 等)

如果这些不是你所追求的。请你能进一步解释你需要什么。

于 2013-02-05T18:40:30.743 回答