我有一个小的If语句,我想请求帮助将其转换为SQL语法。
如果我是正确的,If语句将检查可能找到传递的字符串上的句点的位置。如果找到(> 0),例如字符串:“VQAL1-SQ994.1”,将是12所以> 0会是真的,那么有人可以向我解释输出的内容:Id = Left(ID,InStr(ID,“。”) - 1)是否会给出示例字符串?
print (pd.merge(df2.drop('r', axis=1), df1[['r','node']], on='node'))
node original lat lon r
0 0 50405 1.299033 103.83828 95
1 1 50404 1.299033 103.83828 140
2 2 50405 1.299033 103.83828 143
3 3 50402 1.299033 103.83828 259
4 4 6101 1.299033 103.83828 85
5 5 9821 1.332867 103.95767 37
感谢您的帮助。
更新
我整理了一个小的存储过程,看看我是否能够完成这项工作,但到目前为止,我认为它无法正常工作,因为它从我传递的字符串中没有返回任何内容。
测试执行:
If InStr(ID, ".") > 0 Then
Id = Left(ID, InStr(ID, ".") - 1)
End If
存储过程内容:
/*
EXEC Test_String 'VQAL1-SQ994.1'
*/
答案 0 :(得分:2)
REPLACE(yourstringcolumn, '.', '')
答案 1 :(得分:2)
看起来它正在返回字符串的前X个字符,X是句点数 - 1.在TSQL中,您可以通过以下方式执行此操作:
SELECT Left(id, LEN(id) - Len(Replace(id, '.', '')) - 1)