在SELECT语句中设置列的值?

6
在MySQL中,我可以执行以下操作:
SELECT "spam" AS "foo", "eggs" AS "bar" LIMIT 1;

…这将返回1行2列(“foo”和“bar”)和2个值(“spam”和“eggs”)。

在SQL Server中使用TSQL是否可以实现此功能?

2个回答

14

您可以执行以下任何一项:

SELECT 'spam' foo, 'eggs' bar

SELECT 'spam' AS foo, 'eggs' AS bar

SELECT foo = 'spam', bar = 'eggs'

SELECT 'spam' "foo", 'eggs' "bar"

SELECT 'spam' [foo], 'eggs' [bar]

由于您正在构建一组硬编码的值,因此不需要限制子句。只是提供信息,T-SQL中的等效语句是TOP


啊,那就是我的问题了;我在查询中使用的是双引号 " 而不是单引号 '。我不知道 tsql 会解释它们! - Phillip B Oldham
是的,在T-SQL中,值必须用单引号括起来。如果你使用'value',它隐含着一个varchar类型。如果你想要nvarchar类型,你需要在文本前面加上N,像这样- N'value' - Yuck

1

使用 TOP 限制返回的行数

SELECT TOP 1 'spam' AS "foo", "eggs" AS "bar"

但在这种情况下,由于您不是从具有多行的表中获取数据,因此您可以只执行以下操作:

SELECT 'spam' AS "foo", "eggs" AS "bar"

选择 'spam' 作为 "foo",而不是 "spam"。 - ypercubeᵀᴹ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接