0

SELECT で列の値を取得する必要があります。しかし、私は複数の値を持っています...ユーザーがチェックボックスで何を選択するのかわかりません...

元:

Insert Into MyTable (dados) Values ('a1') 
結果が欲しい = アングロ 1

Insert Into MyTable (dados) Values ('a2';'a3') 
結果が欲しい = アングロ 2

Insert into MyTable (dados) Values ('a3'; a1) 
結果が欲しい = Angulo 3; アングロ 1

Insert into MyTable (dados) Values ('a6'; 'a7'; 'a4') 
結果が欲しい=Angulo 6; Angulo 7;Angulo4




私はSELECT CASE WHENを試しています。しかし、それでも失敗します...

4

5 に答える 5

0

あなたが言う時:

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

あなたは、「dados と呼ばれるデータを入れる列が 1 つある」と言っています。次に、3 つの値を指定しています。これは、どのデータベースでも失敗します (セミコロンがコンマでなければならないという事実は別として)。

おそらくあなたが望む:

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

それはただ 1 つの値、文字列です。

これは、非正規化されたデータベースを示唆しています。テーブル内の 3 つの異なる行 (値ごとに 1 つずつ) が必要になる場合があり、キーによって相互に接続されます。

于 2013-02-05T18:19:13.353 に答える
0

ステートメントでINキーワードを使用する方法を尋ねていると思いますか? SELECTあなたがやろうとしていることは少し不明確です。

これを試して:

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

MyTable という名前のテーブルと、そのテーブルに a6、a7、および a4 の 3 つの行がある dados という名前の列があると仮定すると、これはすべての一致 (この場合は 3 つの行すべて) を返します。

幸運を。

于 2013-02-05T18:24:31.487 に答える
0

SQL Server 2008 以降を使用している場合の例を次に示します。

if(OBJECT_ID('tempdb..#dados') is not null) DROP TABLE #dados

上位 100 を選択 * INTO #dados FROM ( 値(1,2,3), (4,5,6), (7,8,9) ) t(a,b,c)

select * 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 ( 値(111,222,333), (444,555,666), (777,888,999) ) t(a,b,c)

SELECT * FROM #dados

于 2013-02-05T18:29:31.467 に答える
0

複数の行 (列ではなく) を挿入する場合、構文は次のとおりです。

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

2 つのことを要求しようとしているようです。

複数の値を挿入する方法は次のようになります。

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 に答える