2011-05-19 79 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

相關問題