的我們用RTRIM()
修剪附加到任何字的右側任何多餘的空格。但在MS SQL Server 2012中,我發現SSMS會自動修剪任何單詞右側的任何多餘空格。請查找以下查詢以瞭解我們的案例。使用RTRIM()函數
查詢: -
DECLARE @INPUT AS TABLE
(
NAME VARCHAR(20),
PRODUCTID INT,
SHIP_DATE DATETIME
)
INSERT INTO @INPUT(NAME,PRODUCTID,SHIP_DATE) VALUES('BRITANIA ',1,'2017-07-08')
INSERT INTO @INPUT(NAME,PRODUCTID,SHIP_DATE) VALUES(' NESTLE',2,'08-07-2017')
--SELECT * FROM @INPUT
SELECT RTRIM(LTRIM(NAME)),LEN(RTRIM(LTRIM(NAME))),NAME, LEN(NAME) FROM @INPUT
SELECT 'BRITANIA ',LEN('BRITANIA ')
如果您在MS SQL Server 2012中這個上面的查詢,那麼所有多餘的空格都爲詞「不列顛尼亞」被自動刪除。所以,這意味着MS SQL server 2012正在使RTRIM()
功能無用。 RTRIM()
在這裏似乎沒用。 我嘗試過以前的版本,並找到相同的結果。
我在蟾蜍應用程序檢查運行Oracle 10g中,我發現RTRIM()正常工作。
SELECT RTRIM(LTRIM(NAME)),LEN(RTRIM(LTRIM(NAME))),NAME, LEN(NAME) FROM DUAL
能否請您解釋一下我爲什麼SSMS正在生產輸出等爲RTRIM()
功能和無RTRIM()
功能?
SELECT 'BRITANIA ',LEN('BRITANIA ') AS [WITHOUT RTRIM], LEN(RTRIM('BRITANIA ')) AS [WITH RTRIM]
如果您執行在MS SQL Server 2012這上面的查詢,然後它會自動修整向左和生產只給定字的大小多餘的空格。
請回答我在這方面。
感謝
[的VARCHAR與行爲空格在最後](https://dba.stackexchange.com/questions/10510/behavior-of-varchar-with-spaces-at-the-end) –