如果value包含这些字母,那么

时间:2012-08-03 12:14:34

标签: sql-server regex if-statement

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

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

......等等。

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

3 个答案:

答案 0 :(得分:17)

试试这个:

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

答案 1 :(得分:1)

你可以尝试这样的东西(来自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

答案 2 :(得分:0)

我使用类似以下内容:

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

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