如果我有一列具有以下可变长度值的 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