当前位置: 首页 > 面试题库 >

1在SQL中是否总是等于1?

高茂
2023-03-14
问题内容

我试图确定用于将数字与相同数字的字符或字符串版本进行比较的标准SQL行为。是否SELECT 1 = '1'(或类似)总是返回某种“truthy”值(true1't'等)?我已经在PostgreSQL和MySQL上进行了同样的确认,但是我找不到整个SQL的资源。

更新:问题 的目的是我试图找出在选择/插入/更新/等时使用不带引号的数字是否可以使用。来自其值为数字的非数字字段。


问题答案:

SELECT 1='1'给人TRUE因为'1'是一个正确的构造函数INT中知道我所有的实现。

但是SQL使用严格的类型,请注意:

# SELECT 1=CAST('1' AS TEXT);
ERROR:  operator does not exist: integer = text
LINE 1: SELECT 1=CAST('1' AS TEXT);
                ^
HINT:  No operator matches the given name and argument type(s). You might need to add  explicit type casts.

关于标准(SQL 92、99和2003),这似乎是错误的:

     <literal> ::=
            <signed numeric literal>
          | <general literal>

     <general literal> ::=
            <character string literal>
          | <national character string literal>
          | <bit string literal>
          | <hex string literal>
          | <datetime literal>
          | <interval literal>

     <signed numeric literal> ::=
          [ <sign> ] <unsigned numeric literal>

     <unsigned numeric literal> ::=
            <exact numeric literal>
          | <approximate numeric literal>

     <exact numeric literal> ::=
            <unsigned integer> [ <period> [ <unsigned integer> ] ]
          | <period> <unsigned integer>

     <unsigned integer> ::= <digit>...

     <character string literal> ::=
          [ <introducer><character set specification> ]
          <quote> [ <character representation>... ] <quote>
            [ { <separator>... <quote> [ <character representation>... ] <quote> }... ]

因为<quote>仅包含在<bit string literal>,,<hex string literal>…中,但不包含在数字文字中。



 类似资料:
  • 问题内容: 在预发布文档中,似乎没有Swift版本的CGPathApply。是否有同等的或替代的?我正在尝试获取CGPath的所有子路径,以便可以从其他起点重绘它。 问题答案: 斯威夫特3.0 在Swift 3.0中,您可以这样使用: 斯威夫特2.2 通过添加,您现在可以直接从Swift进行调用。这是做必要魔术的包装器: (请注意,我的代码中没有提到,但是在Core Graphics模块的声明中使

  • 问题内容: 将几个存储过程从MySQL转换为Microsoft SQL Server。一切都进行得很好,除了一个过程使用了MySQL函数。我似乎无法在MS-SQL中找到与之等效的东西。 有谁知道在MS-SQL上的有效等效项? 问题答案: SQL Server 2005和更高版本具有HashBytes()函数。

  • 问题内容: 我想将“ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 …”(以逗号分隔)拆分为一个表或表变量。 有人有连续返回每个函数的函数吗? 问题答案: 这是一些老式的解决方案: 在SQL Server 2008中,您可以使用.NET代码实现相同的目的。也许它会更快地工作,但是绝对可以更轻松地管理这种方法。

  • 本文向大家介绍MySQL LIMIT子句是否等效于SQL SERVER?,包括了MySQL LIMIT子句是否等效于SQL SERVER?的使用技巧和注意事项,需要的朋友参考一下 首先,我们需要创建一个表来了解limit子句(对于SQL Server来说是我们想要的)。我们将在CREATE命令的帮助下创建一个表。 建立表格 之后,让我们将记录插入表中- 在SELECT语句的帮助下显示所有记录- 以

  • 下面是有问题的代码: 目前,在

  • 问题内容: 显然,这比我想象的要难找到。而且甚至很简单… 是否有与Javascript中内置的PHP htmlspecialchars等效的功能?我知道自己很容易实现,但是使用内置函数(如果可用)会更好。 对于不熟悉PHP的人,htmlspecialchars可将类似的内容转换为 我知道这一点,因此不能这样工作。 问题答案: 解决方案代码存在问题-它只会转义每个特殊字符的第一次出现。例如: 这是正