Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:查询中使用LEFT(xxx,15)的case-when语句_Sql_Sql Server_Case When - Fatal编程技术网

SQL Server:查询中使用LEFT(xxx,15)的case-when语句

SQL Server:查询中使用LEFT(xxx,15)的case-when语句,sql,sql-server,case-when,Sql,Sql Server,Case When,我在MicrosoftSQLServerManagementStudio中处理一个查询,我不确定如何完成某项任务 以下是当前的查询: SELECT DISTICNT PRONOTES.CPK, REPLACE(PRONOTES.SUBJECT, ',','') AS SUBJECT, PRONOTES.CREATOR, PRONOTES.DATE_CREATED FROM PRONOTES WHERE DATE_CREATED BETWEEN

我在MicrosoftSQLServerManagementStudio中处理一个查询,我不确定如何完成某项任务

以下是当前的查询:

SELECT DISTICNT 
    PRONOTES.CPK,
    REPLACE(PRONOTES.SUBJECT, ',','') AS SUBJECT,
    PRONOTES.CREATOR,
    PRONOTES.DATE_CREATED
FROM 
    PRONOTES
WHERE 
    DATE_CREATED BETWEEN '2020-01-01' AND '2020-01-31'
我的问题是,该软件创建了一个主题,其中包括一个处方号码时,一个命令是中断。所以我在主题栏中得到的结果如下:

Discontinued RX #2341241341
Discontinued RX #23455859900
所有其他可能的主题都被锁定,因为用户必须从下拉列表中选择它们,正是这个实例产生了唯一的值。我试图通过不同用户创建的注释数量和类型来衡量他们的工作效率

我希望结果只显示“停药处方”,而不包括数字,这样当它被发送到excel并创建透视表时,就不会因为处方号的唯一性而有一百万行

我不能用一个简单的:

LEFT(REPLACE(PRONOTES.SUBJECT, ',', ''), 15)
因为那样的话,我会丢失太多其他受试者的数据,所以我想知道如何在一个案例中做到这一点,或者是否有其他更好的方法。我想也许修改一下,这样只有以“停止接收”开头的主题才会被切掉

现在它生成了以下内容:

但我想这样:


以下是一个简单的模式,您可以根据需要将其调整为
SELECT
语句中的CASE语句

DECLARE @test varchar(100) = 'Discontinued RX #2341241341 Discontinued RX #23455859900'

SELECT CASE WHEN PATINDEX('Discontinued RX #%', @test) > 0 THEN 'Replace' ELSE 'Keep' END

下面是一个简单的模式,您可以根据需要将其调整为
SELECT
语句中的CASE语句

DECLARE @test varchar(100) = 'Discontinued RX #2341241341 Discontinued RX #23455859900'

SELECT CASE WHEN PATINDEX('Discontinued RX #%', @test) > 0 THEN 'Replace' ELSE 'Keep' END

您可以在
主题
上使用
案例
表达式,这样当它以
中断接收开始时,您就可以显示:

SELECT DISTINCT
    PRONOTES.CPK,
    CASE WHEN LEFT(PRONOTES.SUBJECT, 15) = 'Discontinued RX' THEN 'Discontinued RX'
         ELSE REPLACE(PRONOTES.SUBJECT, ',','')
    END AS SUBJECT,
    PRONOTES.CREATOR,
    PRONOTES.DATE_CREATED
FROM PRONOTES
WHERE DATE_CREATED BETWEEN '2020-01-01' AND '2020-01-31'

您可以在
主题
上使用
案例
表达式,这样当它以
中断接收开始时,您就可以显示:

SELECT DISTINCT
    PRONOTES.CPK,
    CASE WHEN LEFT(PRONOTES.SUBJECT, 15) = 'Discontinued RX' THEN 'Discontinued RX'
         ELSE REPLACE(PRONOTES.SUBJECT, ',','')
    END AS SUBJECT,
    PRONOTES.CREATOR,
    PRONOTES.DATE_CREATED
FROM PRONOTES
WHERE DATE_CREATED BETWEEN '2020-01-01' AND '2020-01-31'

请提供示例数据和所需结果。请提供示例数据和所需结果。@user12400282无需担心-我很高兴我能提供帮助。@user12400282无需担心-我很高兴我能提供帮助。