如何 select 在 SQL 服务器中使用带有条件的 Left 函数?

How to select using Left Function with a condition in SQL Server?

在 postgres 中我可以使用以下内容:

SELECT LEFT([COLUMN], 1) = 'B'
FROM [DB].[dbo].[TABLE]

但在 SQL 服务器无法使用 "="

如何在 SQL 服务器中解决这个问题。

LEFT 函数没有问题,但是 return truefalse 在评估 表达式 之后你需要 [= SQL server

中的 15=] 或 IIF 语句
case when LEFT([COLUMN], 1) = 'B' then 'true' else 'false' end

IIF(LEFT([COLUMN], 1) = 'B','true','false' )

OP 询问了一个 postgresql 语法,这在 sql 服务器的眼中真的很奇怪。我猜你想要 return 一列布尔值? 那么问题就是 sql 服务器完全没有布尔数据类型!但是您可以使用 BIT 并为 0、1 和 NULL 赋值。然而,它不是 built-in。

至于标题"How to select using Left Function with a condition in SQL Server?",很简单:CASE-END语句支持LEFT功能。但是,有一个警告是 CASE-END:

的两种不同语法

语法 1:

CASE [Column] WHEN 'B' THEN 1 ELSE 0 END

语法 2:

CASE WHEN [Column] = 'B' THEN 1 ELSE 0 END

两者之间的区别是:语法 1 使所有条件都检查相同的值(即 [Column]),而语法 2 支持不同的条件子句。而且它们不能混合。例如: 1)

CASE LEFT([Column],1) WHEN 'B' THEN 1 WHEN LEFT([Column],2) = 'Ca' THEN 2 ELSE 0 END

在“=”上抛出语法错误,而 2)

CASE WHEN LEFT([Column],1) = 'B' THEN 1 WHEN LEFT([Column],2) = 'Ca' THEN 2 ELSE 0 END

完美运行。