gpt4 book ai didi

mysql - 三元表达式验证 WHERE 子句 T-Sql 中的类型字段

转载 作者:行者123 更新时间:2023-11-29 22:42:41 25 4
gpt4 key购买 nike

标题并不是很明确,所以让我澄清一下:

我有一个看起来像这样的表格:

ID    NAME    EXTID
===================
1 xxxx 1
-------------------
2 aaaa 2
-------------------
3 dddd ENTR
-------------------
4 ssss 4
  • ID:整数
  • 名称:varchar(50)
  • EXTID:varchar(50)

我的网络应用程序允许用户插入行。插入时,用户应该精确输入名称。然后,创建一个ID,并将其设置为EXTID列,它是一个外部ID,与ID列的值相同。然后,用户可以在将来更改EXTID(出于同步目的,但不要陷入无用的解释)。

问题:

我想获取具有相同 IDEXTID 值的所有记录。我尝试了以下查询:

SELECT  T.*
FROM myTable T
WHERE T.ID = T.EXTID

但是我收到以下错误:

Failed to convert the varchar value 'ENTR' in the int data type .

所以我的问题是:是否可以创建这样的三元表达式:

SELECT   T.*
FROM myTable T
WHERE T.ID = (ISNUMERIC(T.EXTID) ? CAST(T.EXTID AS int) : -1)

-1 表示在转换失败的情况下不显示任何行。

最佳答案

这种显式转换将允许转换以另一种方式进行,而不是尝试将非数字值隐式转换为 int。

SELECT  T.*
FROM myTable T
WHERE CAST(T.ID as varchar(50)) = T.EXTID

关于mysql - 三元表达式验证 WHERE 子句 T-Sql 中的类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com