我正在考虑一个SQL查询,它返回前5个字符匹配的列中的所有条目.有任何想法吗?我正在考虑任何前5个字符匹配的条目,而不是特定的条目.例如
HelloA
HelloB
ThereC
ThereD
Something
Run Code Online (Sandbox Code Playgroud)
将返回前四个条目:
HelloA
HelloB
ThereC
ThereD
Run Code Online (Sandbox Code Playgroud)
编辑:我使用SQL92所以不能使用左命令!
在将一些数据库列映射到 Java 类时,我偶然发现了这个不起眼的SQL-92 标准类型(据我所知由 PostgreSQL、H2 和 HyperSQL 实现)。我从未使用过它,但我想了解如果我找到它,如何清楚地将它映射到 Java 类型。
以下是我可以看到的变体:
情况A:TIME
类型,例如15:20:01
。这是“当地时间”。时区对于应用程序来说是显而易见的,因此数据库不会记录它。
情况 B:TIME
带有偏移量的 ,如 中15:20:01+04:00
。它代表“世界时间”。这个时间可以简单地转换为 UTC 或任何其他世界时钟。
情况 C:TIME
带有时区的 A,例如15:20:01 EDT
。由于解释时间的规则很大程度上取决于具体的日期,如果没有日期,我就无法真正理解它。但是,如果我添加日期,它就会变成TIMESTAMP
,那就完全不同了。
那么,SQL 标准是否弄错了?或者也许“带有时区的时间”应该始终解释为“带有偏移量的时间”(情况 B)?
根据ANSI SQL-1992标准,第132页,这是ANSI子字符串函数的语法:
<character substring function> ::=
SUBSTRING <left paren> <character value expression> FROM <start position>
FOR <string length> ] <right paren>
Run Code Online (Sandbox Code Playgroud)
SQL开发人员在oracle 10g架构上的快速测试:
SELECT SUBSTRING('ASDF' FROM 1 FOR 1) FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
结果是:
ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Error at Line: 1 Column: 28
Run Code Online (Sandbox Code Playgroud)
这是否意味着Oracle 10g不符合此特定ANSI标准?
我只想使用ANSI标准子字符串函数而不是特定于供应商的函数.
我有一个简单的表 ItemMapping,2 个字段,一个字段是单个项目列表字段 SingleSelectField,值为“A”,其他为多个项目列表字段 MultiSelectField,值为(“B”、“C”、“D”)。
我想得到这个映射关系 通过“B”,我尝试设置一个数据集,并像以前一样尝试一些单一的 SuiteQL,但我总是返回空结果。
SELECT *
FROM ItemMapping
WHERE ItemMapping.MultiSelectField IN ('B')
Run Code Online (Sandbox Code Playgroud)
任何提示都可以帮助我。先感谢您。
我们知道,为了将字符串文字限定为Unicode,我们需要N
在Transact-SQL中为它添加前缀.我的问题是,这是否是ANSI SQL的任何标准的一部分.其他数据库平台会理解这个吗?
更新:
我使用Mig#的实际实验表明,为了使用Unicode文字:
ansi-sql-92 ×6
sql ×5
ansi-sql ×2
database ×1
netsuite ×1
oracle ×1
sql-server ×1
suiteql ×1
suitescript ×1
syntax ×1
t-sql ×1
type-mapping ×1