7

これが私のデータベースのスナップです。

col1 と col2 は両方とも int として宣言されています。

My ComputedColumn は現在、次のように列 1 と 2 を追加しています...

col1  col2  ComputedColumn
1     2     3
4     1     5

これの代わりに、私の ComputedColumn は次のように列 1 と 2 (真ん中に「-」文字を含む) を結合する必要があります...

col1  col2  ComputedColumn
1     2     1-2
4     1     4-1

それで、正しい構文は何ですか?

4

5 に答える 5

9

おそらく、計算列を として定義していますcol1+col2CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))代わりに試してください。

または、必要に応じて、お好みの長さと交換することもできNVARCHAR(MAX)ます。NVARCHAR(10)

于 2010-03-18T19:31:40.117 に答える
3
create table TableName
(
    col1 int,
    col2 int,
    ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)

どちらかの値がnullの場合、 の結果ComputedColumnnull(デフォルトの照合と設定を使用して)になることに注意してください。

于 2010-03-18T19:32:16.917 に答える
0

単純:

SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
  FROM Table
于 2010-03-18T19:31:46.090 に答える
0
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn

「+」は加算文字と連結文字の両方です。明示的に変換することもできますが、この場合、中間に「-」を含めると、暗黙的な変換が発生するはずです。

于 2010-03-18T19:32:35.713 に答える