4

我无法理解为什么 RIGHT 功能对我不起作用。我试图在这里输入尽可能多的输出,如果阅读起来令人困惑,我深表歉意。

DECLARE @Nbr VARCHAR(27)

SELECT @Nbr = xmz.nbr
FROM @xml_temp AS xmz

SELECT @Nbr AS 'Number', 
       LEFT(@Nbr, 4) AS 'LEFT', 
       LEN(@Nbr) AS 'Length', 
       SUBSTRING(@Nbr, 10, 4) AS 'SUBSTRING', 
       RIGHT(@Nbr, 4) AS 'RIGHT'

编号:154448887859999
左:1544
长度:15子串
:9999
右:

4

3 回答 3

8

空格,LEN 不计算空格,而 DATALENGTH 计算

你能跑吗

SELECT DATALENGTH(@Nbr) AS 'Length',
 RIGHT(RTRIM(@Nbr), 4) AS 'RIGHT'
于 2013-10-08T14:51:48.120 回答
0

尝试

SELECT @Nbr AS 'Number', 
       LEFT(@Nbr, 4) AS 'LEFT', 
       LEN(@Nbr) AS 'Length', 
       SUBSTRING(@Nbr, 10, 4) AS 'SUBSTRING', 
       RIGHT(RTRIM(@Nbr), 4) AS 'RIGHT'
于 2013-10-08T14:53:10.893 回答
0

我发现这很有启发性。

DECLARE @from char(4) = '5am';
DECLARE @to varchar(4) = '6am';
DECLARE @not_to_be varchar = '7am';
SET @from = RIGHT('0' + @from,4)
SELECT LEN(@from)
SELECT '''' + @from + ''''
SET @to = RIGHT('0' + @to,4)
SELECT LEN(@to)
SELECT '''' + @to + ''''
SET @not_to_be = RIGHT('0' + @not_to_be,4)
SELECT LEN(@not_to_be)
SELECT '''' + @not_to_be + ''''

产生以下输出

(No column name)

1 3

(No column name)

1 '早上 5 点'

(No column name)

1 4

(No column name)

1 '06am'

(No column name)

1 1

(No column name)

1'0'

自己

于 2017-07-08T14:50:19.250 回答