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

时间:2013-09-17 11:18:25

标签: sql sql-server-2005

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

Column
---
ACD                           
BC                            
CD                     

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用SUBSTRING:

SELECT SUBSTRING('ABC',1,1)

第一个参数是输入字符串,第二个是基于1的起始索引,第三个是结果的长度。

因此,如果表1中有一列Col1:

SELECT SUBSTRING(Col1,1,1),
       SUBSTRING(Col1,2,1),
       SUBSTRING(Col1,3,1),
       SUBSTRING(Col1,4,1)
FROM   Table1

如果您有三个字符并且尝试获得第四个字符,则会得到一个空字符串。

Fiddle Example Here

答案 1 :(得分:1)

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