1

アプリケーションを変更する必要があり、最初にデータベース テーブルのフィールドを変更する必要があります。この表には、1 ~ 6 個の単一文字があります。つまり、'abcdef' です。これを '[a][b][c][d][e][f]' に変更する必要があります。

[編集] 同じフィールドにとどまることが意図されています。したがって、field = 'abcdef' の前と field = '[a][b][c][d][e][f]' の後です。

これを行うにはどうすればよいでしょうか。

rg。エリック

4

3 に答える 3

2
DECLARE @text NVARCHAR(50)

SET @text = 'abcdef'

DECLARE @texttable TABLE (value NVARCHAR(1))

WHILE (len(@text) > 0)
BEGIN
    INSERT INTO @texttable
    SELECT substring(@text, 1, 1)

    SET @text = stuff(@text, 1, 1, '')
END

select * from @texttable
于 2013-08-26T09:52:58.773 に答える
0

関数を使用しない場合:

declare @t table(C varchar(18))
insert @t values('abc'), ('1234'), (' 1234a')

;with CTE as
(
select C, '[' + substring(c, a.n, 1) + ']' v, rn   from
(select 1 n union all 
select 2 union all 
select 3 union all 
select 4 union all 
select 5 union all 
select 6) a
cross apply
(select c, row_number() over (order by C) rn from @t group by c) b
where a.n <= len(C)
)
update t3
set C = t4.[value] 
FROM @t t3
JOIN
(
select C,
    ( 
        select v 
        from CTE t1 
        where t1.rn = t2.rn 
        for xml path(''), type 
    ).value('.', 'varchar(18)') [value] 
from CTE t2 
group by t2.rn, C
) t4
ON t3.C = t4.C

SELECT * FROM @t
于 2013-08-26T12:10:33.660 に答える