我需要使用SELECT检索columm的值。但是,我有多个价值观...... 我不知道用户在复选框中选择了什么...
例如:
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; Angulo 1
Insert into MyTable (dados) Values ('a6'; 'a7'; 'a4')
我想要结果= Angulo 6; Angulo 7; Angulo4
我正在尝试SELECT CASE WHEN。但它仍然失败......
答案 0 :(得分:0)
当你说:
insert into MyTable(dados)
Values ('a6', 'a7', 'a4')
您说“我有一列将数据放入名为dados的数据库中。”然后,您提供三个值。这将在任何数据库中失败(甚至除了分号应该是逗号之外)。
也许你想要:
insert into MyTable(dados)
Values ('a6;a7;a4')
这只是一个值,一个字符串。
这表明非规范化数据库。您可能希望表中有三个不同的行,每个值一个,通过某个键连接在一起。
答案 1 :(得分:0)
我怀疑您在IN
语句中询问如何使用SELECT
关键字?有点不清楚你想要做什么。
试试这个:
SELECT *
FROM MyTable
WHERE dados IN ('a6','a7','a4')
假设你有一个名为MyTable的表和一个名为dados的列,该表在该表中包含3行a6,a7和a4,这将返回所有匹配项(在本例中为所有三行)。
祝你好运。答案 2 :(得分:0)
如果您使用的是sql server 2008及更高版本,请参阅以下示例:
if(OBJECT_ID('tempdb .. #dados')不为null) DROP TABLE #dados
选择前100名* INTO #dados FROM ( 值(1,2,3), (4,5,6), (7,8,9) )t(a,b,c)
选择* FROM #dados
INSERT INTO #dados(a,b,c) 值(11,22,33), (44,55,66), (77,88,99)
SELECT * FROM #dados
INSERT INTO #dados(a,b,c) SELECT * FROM ( 值(111222333), (444555666), (777888999) )t(a,b,c)
SELECT * FROM #dados
答案 3 :(得分:0)
如果要插入多行(而不是列),则语法为
Insert Into
MyTable (dados)
Values
('a1'),
('a2')
答案 4 :(得分: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等)
如果这些不是你想要的。请你能进一步解释你的需求。