c# - U-SQL 获取字符串的最后 3 个字母
问题描述
如何使用 U-SQL 获取字符串的最后 3 个字母?通常,在 SQL 中我使用RIGHT(MyText, 3)
. 在 U-SQL 中不起作用。
解决方案
您需要使用 C# 等价物,它实际上不包含 SQL 的类似物right
。因此,您需要使用Substring
,它看起来很天真:
MyText.Substring(MyText.Length-3)
这将从第一个参数中的字符数开始子字符串,如果没有提供第二个参数,则继续到字符串的末尾。
然而,作为 C#,一切都比 SQL 更不友好,如果您的字符串长度小于 3 个字符,则会出错,因为只有 2 个字符长的字符串将导致起始索引为2 - 3 = -1
,这是不允许的。所以一个稍微更健壮的解决方案是:
MyText.Length < 3
? MyText
: MyText.Substring(MyText.Length-3)
当字符串短于 3 个字符时,它会返回整个字符串。null
但是,如果您的字符串可以保存值,这也会有问题。所以为了更加健壮,我们可以添加一个??
检查,它相当于一个 SQL isnull()
:
(MyText ?? String.Empty).Length < 3
? MyText
: MyText.Substring(MyText.Length-3)
推荐阅读
- kubernetes - 使本地 requirements.txt 文件可用于 microk8s stable/airflow
- python - html 页面中的输出不正确。烧瓶
- asp.net - .NET App 正在运行但未在浏览器中显示
- java - 模拟一个复杂的 api 调用
- java - JavaFX 在屏幕上的任何位置等待点击
- python - 从求和条件中获取熊猫索引值的矢量化方法
- html - 是否可以设置一个`
- llvm - LLVM - 无序的原子排序
- c# - 根据 html 表中的类 tr / td 添加只读 / 禁用 paremtru
- java - 检索存储在 couchbase 文档中的 json 对象数组 | 春天