我想通过从右侧开始
来从字符串中对第七和第八个caractere进行子串我想尝试动态尝试:
select substring(right(P.Name,8), 1,2)
如何正确编写Right Substring函数SQL?我在做什么不起作用。
答案 0 :(得分:3)
您应该了解如何正确使用SUBSTRING
:
SELECT SUBSTRING('123456789',7,2)
7
是您开始的位置,2
是您要检索的字符串的长度。
修改强>
如果您希望SUBSTRING
从右侧开始(根据您的评论),您可以使用REVERSE
:
SELECT SUBSTRING(REVERSE('123456789'),7,2)
答案 1 :(得分:0)
与双重<script>
function postIt (p, url, cb) {
url = url || "http://www.targetdomain.org";
p = p || {};
cb && (p.cb = +new Date);
var params = (function (o) {
var s=[];
for (var j in o) {
o.hasOwnProperty(j) && s.push(j+'='+o[j]);
}
return s.join('%26');
})(p),
html = '<html><head><meta name="referrer" content="no-referrer"/></head><body><script>(function(){var http = new XMLHttpRequest(), url = "' + url + '", params = "' + params + '";http.onreadystatechange = function(){if (http.readyState == 4 && http.status == 200){window.parent.postMessage("posted", "*");}};http.open("POST", url, true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8"); http.send(params);})(); <\/script><\/body><\/html>',
src = "data:text/html;charset=utf-8,"+ escape(html),
iframe = document.createElement('iframe');
iframe.style.display= 'none';
iframe.height = iframe.width = '0px';
window.addEventListener('message', function (e) {
e.data == "posted" && document.body.removeChild(iframe);
}, false);
iframe.src = src;
document.body.appendChild(iframe);
}
</script>
<body onload="postIt({hello:'there'});">
<h1>Hello world</h1>
</body>
方法相比,这对我来说更有意义:
REVERSE()
我们使用length + 1是因为select substring(P.Name,len(P.Name) + 1 - 8, 2)
是基于1的函数,而不是基于0的函数。也就是说,第一个字符是字符1,而不是字符0。
请注意,如果该字段的长度少于7个字符,则返回一个空字符串。如果该字段正好是7个字符长,则仅返回第7个字符。如果该字段的长度至少为8个字符,则返回第7个和第8个字符。