2

テーブルの列の値の 1 つと定数変数を選択する必要があります。例えば、

SQL テーブル:


Key  KeyName
-------------
1    Normal
2    Basic
3    Super

定数値は R1、R2、R3、R4 です。

単一の列としての出力結果:


Normal R1
Normal R2
Normal R3
Normal R4
Basic  R1
Basic  R2
.
.
.
Super  R4

アドバイスをいただければ幸いです。ありがとう。

4

3 に答える 3

2

これを試して:

SELECT 
  T.KeyName,
  TT.ConstValues
FROM Tbl T
  CROSS JOIN
  (VALUES ('R1'), ('R2'), ('R3'), ('R4')) TT(ConstValues)

SQL フィドルのデモ

于 2013-10-19T15:38:02.837 に答える
1

定数値を結果セットとして表す必要があり、両方から選択してデカルト積を取得できます。例えば:

WITH ConstantValues AS
(
   SELECT 'R1' AS ConstantValue
   UNION ALL 
   SELECT 'R2'
   UNION ALL 
   SELECT 'R3'
   UNION ALL 
   SELECT 'R4'
)

SELECT t.KeyName, c.ConstantValue
FROM SqlTable t, ConstantValues c;

各ペアを 1 つの結果として表す場合は、代わりに を使用できますSELECT t.KeyName + ' ' + c.ConstantValue AS ResultColumn

于 2013-10-19T15:36:46.180 に答える
0
SELECT KeyName, Value = CASE WHEN [number] = 1 THEN 'R1' 
                             WHEN [number] = 2 THEN 'R2'
                             WHEN [number] = 3 THEN 'R3'
                             WHEN [number] = 4 THEN 'R4'
                             ELSE ''
                        END
FROM (SELECT KeyName, ROW_NUMBER OVER (PARTITION BY KeyName 
                                       ORDER BY KeyName) AS [number]
      FROM MyTable) A
于 2013-10-19T15:35:58.493 に答える