VBA:将代码段从VBA转换为SQL

时间:2016-06-22 18:32:14

标签: sql vba tsql vb6

我有一个小的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'
*/

2 个答案:

答案 0 :(得分:2)

REPLACE(yourstringcolumn, '.', '')

Replace on MSDN

答案 1 :(得分:2)

看起来它正在返回字符串的前X个字符,X是句点数 - 1.在TSQL中,您可以通过以下方式执行此操作:

SELECT Left(id, LEN(id) - Len(Replace(id, '.', '')) - 1)