Domanda

Come posso evitare il carattere di sottolineatura?

Sto scrivendo qualcosa di simile alla seguente clausola where e voglio essere in grado di trovare le voci effettive con _d alla fine.

Where Username Like '%_d'
È stato utile?

Soluzione

Riferimento T-SQL per LIKE per SQL Server 2000:

È possibile utilizzare i caratteri di corrispondenza del modello jolly come caratteri letterali.Per utilizzare un carattere jolly come carattere letterale, racchiuderlo tra parentesi.La tabella mostra diversi esempi di utilizzo della parola chiave LIKE e dei caratteri jolly [ ].

Per il tuo caso:

... LIKE '%[_]d'

Altri suggerimenti

Ovviamente la soluzione @Lasse è giusta, ma c'è un altro modo per risolvere il tuo problema:Operatore TSQL LIKE definisce l'opzionale FUGA clausola, che ti consente di dichiarare un carattere che sfuggirà al carattere successivo nel modello.

Nel tuo caso, le seguenti clausole WHERE sono equivalenti:

WHERE username LIKE '%[_]d';            -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';

Queste soluzioni hanno assolutamente senso.Sfortunatamente, nessuno dei due ha funzionato per me come previsto.Invece di cercare di complicarlo, ho optato per una soluzione:

select * from information_schema.columns 
where replace(table_name,'_','!') not like '%!%'
order by table_name

Questo ha funzionato per me, basta usare la fuga'%\_%'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top