Sql 选择带有常量变量的查询
我需要选择一个表列值和一些常量变量。比如说, SQL表:Sql 选择带有常量变量的查询,sql,sql-server,Sql,Sql Server,我需要选择一个表列值和一些常量变量。比如说, 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 谢谢你的建议。谢谢 您需要将常量值表示为一个结果集,然后您可以通过从两个结果集中进行选择来获得笛卡尔积。例如:
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
谢谢你的建议。谢谢 您需要将常量值表示为一个结果集,然后您可以通过从两个结果集中进行选择来获得笛卡尔积。例如:
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
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;
如果希望将每一对表示为一个结果,则可以使用SELECT t.KeyName+''+c.ConstantValue作为结果列。尝试以下方法:
SELECT
T.KeyName,
TT.ConstValues
FROM Tbl T
CROSS JOIN
(VALUES ('R1'), ('R2'), ('R3'), ('R4')) TT(ConstValues)
它与vb.net有什么关系?另外,请解释SQL Server的版本。我们缺少一些信息…R表示什么?它们是某种索引吗?如果它只是一个变量,请以某种方式附加它。谢谢,哈姆雷特。这正是我想要的工作。有一个愉快的周末!谢谢,马克。这是预期的工作。非常感谢。有一个愉快的周末!