我需要将数据中的第一个字符标识为SQL Server中的数字或字符。我对此比较陌生,我不知道从哪里开始。但这就是我在这一点上所做的。我的数据看起来像这样:
TypeDep
Transfer From 4Z2
Transfer From BZZ
Transfer From 123
Transfer From abc
我使用right
功能删除了来自'的转移。并隔离我需要检查的数据。
UPDATE #decode
SET firstPartType = Right(z.TypeDep,17)
FROM #decode z
where z.TypeDep like 'TRANSFER FROM%'
firstPartType
4Z2
BZZ
123
abc
现在我需要添加一个标识字符串中第一个字符的列。产生以下结果。
firstPartType SecondPartType
4Z2 Numeric
BZZ Alpha
123 Numeric
abc Alpha
答案 0 :(得分:4)
使用LEFT
和ISNUMERIC()
但请注意ISNUMERIC
认为某些其他字符(如.
)是数字
UPDATE #decode
SET SecondPartType =
CASE WHEN ISNUMERIC(LEFT(firstPartType, 1)) = 1 THEN'Numeric'
ELSE 'Alpha'
END
FROM #decode;
答案 1 :(得分:3)
更强大的方法是使用sql server的有限正则表达式功能。 ISNUMERIC将返回单个字符的误报,例如。,$等等。
SELECT
CASE WHEN left(firstPartType, 1) like '[0-9]' THEN 'Numeric'
ELSE 'Alpha'
END AS SecondPartType
答案 2 :(得分:1)
我认为这应该有效:
binary
答案 3 :(得分:0)
您可以使用此命令
ISNUMERIC(LEFT(firstPartType, 1))
如果第一个字符是Numbert,则返回1 0如果不是
。我认为就是你所需要的一切
答案 4 :(得分:0)
选择ISNUMERIC(左(' 4ello world',1))将是" 1"如果第一个字符是数字。
答案 5 :(得分:0)
您可以尝试:
calendarapi_mock.return_value._get_event_list.return_value = mocked_calendar_events