C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

SQLServerでの作り方について

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■95618 / inTopicNo.1)  SQLServerでの作り方について
  
□投稿者/ 紅孔雀 (1回)-(2020/08/26(Wed) 14:39:25)

分類:[.NET 全般] 

SQLServer で例えば以下のようにします。

DECLARE	@TB TABLE (
	D1 VARCHAR(5) NOT NULL,
	D2 INT NOT NULL,
	D3 VARCHAR(5) NOT NULL,
	D4 INT NOT NULL,
	D5 INT NOT NULL
	);
INSERT	@TB
SELECT 'A', 1, 'B', 2, 3

SELECT	D1 + '|' + LTRIM(RTRIM(STR(D2))) + '|' + D3  + '|' +  LTRIM(RTRIM(STR(D4))) + '|' + LTRIM(RTRIM(STR(D5)))
FROM	@TB

SELECT	D1 + '|' + CAST(D2 AS VARCHAR) + '|' + D3  + '|' + CAST(D4 AS VARCHAR) + '|' + CAST(D5 AS VARCHAR)
FROM	@TB

質問1:STR を使うのと CAST を使うのではどちらが好ましいのですか?
質問2:上記の場合列には項目(D6やD7)を増やされた場合に SQL を変更しなければならないのですが
    SQLを変更しなくても、D6,D7が追加されて一列で表示できるようにする方法はありますか?



引用返信 編集キー/
■95624 / inTopicNo.2)  Re[1]: SQLServerでの作り方について
□投稿者/ shu (1231回)-(2020/08/26(Wed) 17:50:24)
No95618 (紅孔雀 さん) に返信

どこから、どこまでが可変的内容となるのでしょうか?

提示された内容を取得するのであれば
最小限の記述では
Select 'A|1|B|2|3'
となります。

質問1 => そもそもDeclareするときにintにしなければキャストする必要がないです。
質問2 => 項目が可変なのであれば、固定のSelect文でそれをあらかじめ表現することは出来ません。
     Select * Fromで取得してクライアントアプリで編集するのであれば可能ですが。



引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ