从 SQL Server 中的 varchar 字段中检索单个字符



如果我有一列具有以下可变长度值的 varchar(4) 类型列,我如何检索字段值的各个字符(例如 A - C - D 从值 ACD 中)并在 SQL Server 中进行操作。

Column
---
ACD                           
BC                            
CD                     

谢谢

select  case when CHARINDEX('A', columnName, 1) > 0 then 1 else 0 end has_a,
        case when CHARINDEX('B', columnName, 1) > 0 then 1 else 0 end has_b,
        case when CHARINDEX('C', columnName, 1) > 0 then 1 else 0 end has_c,
        case when CHARINDEX('D', columnName, 1) > 0 then 1 else 0 end has_d
from    tableName

您可以使用 SUBSTRING:

SELECT SUBSTRING('ABC',1,1)

第一个参数是输入字符串,第二个参数是从 1 开始索引开始,第三个参数是从结果的长度

因此,如果您在表 Table1 中有一列 Col1:

SELECT SUBSTRING(Col1,1,1),
       SUBSTRING(Col1,2,1),
       SUBSTRING(Col1,3,1),
       SUBSTRING(Col1,4,1)
FROM   Table1
例如,如果您

有三个字符并尝试获取第四个字符,您将获得一个空字符串。

Fiddle Example Here

最新更新