2011-05-19 30 views
1

我有2个数据库,一个使用小写数据,另一个使用大写数据。在SQL Server中更改字符串大小写(低到高)

DECLARE @NAME VARCHAR(40) 
SELECT @NAME = UPPER(SELECT NAME FROM DELETED) 

通过执行SELECT NAME FROM DELETED,我选择小写的数据。

通过执行SELECT @NAME = UPPER(SELECT NAME FROM DELETED),我想要在UPPER()内的查询上选择大写数据。

问题是我可以使用UPPER()与SELECT,就像上面的查询?

回答

3

如何

SELECT UPPER(NAME) FROM DELETED 

,而不是

UPPER(SELECT NAME FROM DELETED) 
+0

如果使用上面的查询,是否会选择大写数据?从DELETED表中,它只包含小写数据。并作为回报,它将不会返回结果? *该表格区分大小写 – Allen 2011-05-19 07:24:48

+0

@allen,UPPER是影响数据的函数,而不是选择条件。所以,不,它不仅会返回已经是大写的数据。 – jmoreno 2011-05-19 07:32:53

1

使用

SELECT @pNAME = UPPER([NAME]) FROM DELETED 
+0

如果使用上面的查询,是否会选择大写数据?从DELETED表中,它只包含小写数据。并作为回报,它将不会返回结果? *表格是区分大小写的 – Allen 2011-05-19 07:28:56

+0

不,它不会。上面采取任何它给予,并强制它是大写。如果名字较低,则会保持较低。上方只显示它作为上方。 – RThomas 2011-05-19 07:43:59

1

你需要一对额外的括号

选择@NAME = UPPER的(( SELECT NAME FROM DELETED)); (不是说我会这样做,请参阅卢卡斯的更好方法的答案)。

+0

不错,我不知道这是可能的!所以'UPPER'还接受SQL服务器中的'TABLE'或'CURSOR'类型? – 2011-05-19 07:38:24

+0

如果'DELETED'包含多行,这将不起作用 – 2011-05-19 08:06:57

+0

@Lukas:不,这就是额外的括号;他们将选择的结果转换为标量值。 – jmoreno 2011-05-20 00:43:15

相关问题