我需要将数据中的第一个字符标识为数字或SQL Server中的字符。我对此还比较陌生,我不知道从哪里开始。但是,这是我到目前为止所做的。我有看起来像这样的数据:
TypeDep
Transfer From 4Z2
Transfer From BZZ
Transfer From 123
Transfer From abc
Run Code Online (Sandbox Code Playgroud)
我使用该right功能删除了“传输自”并隔离了需要检查的数据。
UPDATE #decode
SET firstPartType = Right(z.TypeDep,17)
FROM #decode z
where z.TypeDep like 'TRANSFER FROM%'
firstPartType
4Z2
BZZ
123
abc
Run Code Online (Sandbox Code Playgroud)
现在,我需要添加一列来标识字符串中的第一个字符。产生以下结果。
firstPartType SecondPartType
4Z2 Numeric
BZZ Alpha
123 Numeric
abc Alpha
Run Code Online (Sandbox Code Playgroud)
使用LEFT和ISNUMERIC(),但是请注意会ISNUMERIC认为一些其他字符(例如.数字)
UPDATE #decode
SET SecondPartType =
CASE WHEN ISNUMERIC(LEFT(firstPartType, 1)) = 1 THEN'Numeric'
ELSE 'Alpha'
END
FROM #decode;
Run Code Online (Sandbox Code Playgroud)
更强大的方法是使用 sql server 有限的正则表达式功能。ISNUMERIC 将返回单个字符的误报,例如 .,$ 等等。
SELECT
CASE WHEN left(firstPartType, 1) like '[0-9]' THEN 'Numeric'
ELSE 'Alpha'
END AS SecondPartType
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2564 次 |
| 最近记录: |