6

在 SQL Server 中,有没有办法搜索(和格式化)某个字符串的结果(如preg_match在 PHP 中):

SELECT (IF (col1 contains 'http'){'<a>' + col 1 + '</a>'}
else {'<b>' + col1 + '</b>'}),
col2
FROM Table

... ETC。

这可能吗?我想根据内容格式化结果。

4

3 回答 3

19

试试这个:

SELECT CASE WHEN col1 LIKE '%http%' THEN '<a>' + col1 + '</a>' ELSE '<b>' + col1 + '</b>' END AS 'Desired Column Name', col2
FROM table

请参阅此处的 MSDN 文档:http: //msdn.microsoft.com/en-us/library/ms181765.aspx

于 2012-08-03T12:16:29.183 回答
2

您可以尝试这样的事情(来自 AdventureWorks 数据库)

SELECT  Title,
        FirstName,
        LastName,
        CASE 
            WHEN LastName LIKE 'G%' THEN '<a href="mailto:' + EmailAddress + '">' + LastName + '</a>'
            ELSE '<b>' + LastName + '</b>'
        END
FROM    SalesLT.Customer
于 2012-08-03T12:23:49.740 回答
0

我使用如下内容:

IF (my_column_name LIKE "%MATCHSTRING%", 1, 0) AS new_column_name,

如果您要进行完全匹配而不是包含,请不要使用 %

于 2021-05-16T04:13:39.823 回答