Postgres中我的表格中的列格式为varchar
,格式为:'str1/str2'
或'str1/str2/str3'
其中str
代表任何字符串。
我想写一个选择查询,它会返回str2
。我上网了,但找不到任何合适的功能。
答案 0 :(得分:5)
使用split_part()
:
/
作为Victoria pointed out,索引是从1开始的,
显然,分隔符必须是明确的。它(在您的示例中为#include <iostream>
#include <vector>
#include <iostream>
#include <math.h>
using namespace std;
double M[4][4]={5, 1.2, 0.3, -0.6, 1.2, 6, -0.4, 0.9, 0.3, -0.4, 8, 1.7, -0.6, 0.9, 1.7, 10};
vector <vector<double> >L;
int n=4;
double calculateFunc1(int i){
double temp =0;
for (int t = 0; t < n; t ++)
temp += L[i][t]*L[i][t];
return sqrt(M[i][i] - temp);
}
double calculateFunc2(int i,int j){
double temp =0;
for (int t = 0; t < n; t ++)
temp += L[i][t]*L[j][t];
return (M[j][i] - temp) / L[i][i];
}
int main()
{
vector <double>temp;
for (int i =0; i < n; i ++){
for(int j =0; j < n; j ++){
temp.push_back(0.0);
}
L.push_back(temp);
temp.clear();
}
for(int i =0; i < n; i ++){
L[i][i] = calculateFunc1(i);
for(int j= i +1 ; j < n; j++){
L[j][i] = calculateFunc2(i,j);
}
}
for (int i=0;i<n;i++){
for (int j=0;j<n;j++){
cout<< L[i][j]<<" ";
}
cout << "\n";
}
return 0;
}
)不能不能成为子字符串的一部分。 (除非你提取的内容正确,否则无论如何都会被忽略。)
相关: