SQL Query – Kann ich mit LEN in SELECT-Klausel vergleichen?

Ich möchte das grundsätzlich machen:

SELECT HasComments = CASE (LEN(Comments) > 1) WHEN 1 THEN 1 ELSE 0 END FROM TableName 

Mit anderen Worten, Rückkehr ein Boolescher, der mir sagt, ob die Länge der Kommentare größer als 1 ist. Dies gibt mir einen Syntaxerrors.

Wie kann ich das erreichen?

 SELECT HasComments = CASE WHEN LEN(Comments) > 1 THEN 1 ELSE 0 END FROM TableName 

Ein besserer path wäre, Kommentare NULLable zu machen und dafür zu überprüfen. Indizes könnten dann anstelle des Tabellen-Scan-LEN () verwendet werden.

du vermisst das when und end

 SELECT HasComments = CASE WHEN (LEN(Comments) > 1) WHEN 1 THEN 1 ELSE 0 END FROM TableName 

Da du keine WHERE-Klausel hast, wirst du wahrscheinlich eine Spalte von data zurückgeben:

 SELECT CASE WHEN LEN(Comments) > 1 THEN 1 ELSE 0 END as 'HasComments' FROM TableName