如何 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 true
或 false
在评估 表达式 之后你需要 [= 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
完美运行。
在 postgres 中我可以使用以下内容:
SELECT LEFT([COLUMN], 1) = 'B'
FROM [DB].[dbo].[TABLE]
但在 SQL 服务器无法使用 "="
如何在 SQL 服务器中解决这个问题。
LEFT
函数没有问题,但是 return true
或 false
在评估 表达式 之后你需要 [= SQL server
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
完美运行。