将sqlite中的数字连接为带有破折号字符的文本

Cha*_*owe 1 sqlite string varchar casting concatenation

我正在尝试将数字连接为文本,并-在我连接的数字之间使用破折号 ( )。

我已经想出了如何将数字连接为文本:

CAST(variable1 AS VARCAHR) || CAST(variable2 AS VARCHAR)
Run Code Online (Sandbox Code Playgroud)

我想要这些之间的破折号,即

CAST(variable1 AS VARCAHR) || CAST(- AS VARCHAR) || CAST(variable2 AS VARCHAR)
Run Code Online (Sandbox Code Playgroud)

但这给了我一个无效的 SQL 错误。我认为这可能与 dash 不是 unicode 或其他东西有关,我不确定。感谢您的帮助。

Col*_*Two 6

只需使用文字字符串连接它(您也不需要强制转换):

variable1 || '-' || variable2
Run Code Online (Sandbox Code Playgroud)

  • @AlexB 如果变量实际上是数字,则不需要强制转换。我怀疑你实际上有空字符串或“NULL”。`选择 1.0 || '-' || 2.0;`对我来说效果很好。 (2认同)

Ale*_*x B 5

上面这个得到 4 票的答案是错误的。如果没有 CAST,则不会出现数值。

正确答案是:

CAST(variable1 AS VARCHAR)|| '-' ||  variable2
Run Code Online (Sandbox Code Playgroud)