将字符串添加到IsNull表达式的末尾

时间:2019-01-03 15:01:39

标签: sql sql-server string reporting-services concat

我想在此处显示的表达式末尾添加除数符号(%):

select 'On-Site Case Rate' Exp1,
isnull(sum(onsite.a) * 100 / count(onsite.casecount), 0) '400',
isnull(sum(onsite.b) * 100 / count(onsite.casecount), 0) '401'
from onsite

我该怎么做?我是否需要使用concat并重新格式化查询,还是可以在某处插入“ +'%'“ +?

这是示例结果,用于SSRS报告

enter image description here

EDIT1:这也是我的报告的设计视图

Design view

3 个答案:

答案 0 :(得分:1)

考虑到您使用的是SSRS,请不要尝试在百分比的末尾添加一个%符号,然后将其转换为varchar,将其保留为decimal。而是更改显示格式。

选择要返回百分比的单元格,然后按 F4 。然后,在现在定位的“属性”窗格中,找到Format属性,并将其更改为0%。如果希望它显示1(或更多)小数位,则使用0.0%0.00%,...,您就会明白。

请注意,您需要确保您的值返回的是十进制值。您将值乘以100,这表示您不是。 15不是15%,而是1500%15% = 0.15

答案 1 :(得分:0)

假设使用SQL Server,则可以使用FORMAT函数来格式化数字:

SELECT FORMAT(0.55,    '#0.##%') -- 55%
SELECT FORMAT(0.555,   '#0.##%') -- 55.5%
SELECT FORMAT(0.5555,  '#0.##%') -- 55.55%
SELECT FORMAT(0.55555, '#0.##%') -- 55.56%

上面将显示结果,最多两位小数。 无需乘以100

答案 2 :(得分:0)

在Sql Server(从2012版开始)中,您可以使用CONCAT函数:

library(shinydashboard)
library(dplyr)
library(shiny)
library(DT)

header <- dashboardHeader(title="Analysis and database")

sidebar <- dashboardSidebar(
  sidebarMenu(
   # Setting id makes input$tabs give the tabName of currently-selected tab
    id = "sidebarmenu",
    menuItem("Database", tabName="db"),
    menuItem("Search by Name", tabName = "Filt_table"),
      textAreaInput("name_", "Name")
 )
)

body <- dashboardBody(

 tabItems(
  tabItem("db","table content",
        fluidRow(DT::dataTableOutput('tabla'))),
  tabItem("Filt_table","Filtered table content",
        fluidRow(DT::dataTableOutput('tablafilt')))
 )
)

ui <- dashboardPage(header, sidebar, body)

### SERVER SIDE

server = function(input, output, session) {

my_data <- data.frame(Person=c("Anne", "Pete", "Rose", "Julian", "Tristan", "Hugh"), 
Votes=c(10,25,56,89.36,78,1500), 
Stuff=c("test|3457678", "exterm|4567sdf", "1001(hom);4.3.4|3456", "xdfrtg", "1234|trsef|456(het)", "hyggas|tertasga"),
 letters=replicate(6, paste(sample(LETTERS,6, replace=T), collapse="")))

output$tabla <- DT::renderDataTable({
  DT::datatable(my_data)
})

filtered <- reactive({
  if(is.null(input$name_))
    return()  
    glist <- isolate(input$name_)
    filter(my_data, Person %in% glist)
 })

output$tablafilt <- DT::renderDataTable({
  if(is.null(input$name_))
    return()  

   DT::datatable(filtered (), 
              filter = 'top', 
              extensions = 'Buttons',
              options = list(
                dom = 'Blftip',
                buttons = 
                  list('colvis', list(
                    extend = 'collection',
                    buttons = list(list(extend='csv',
                                        filename = 'results'),
                                   list(extend='excel',
                                        filename = 'results'),
                                   list(extend='pdf',
                                        filename= 'results')),
                    text = 'Download'
                  )),
                scrollX = TRUE,
                pageLength = 5,
                lengthMenu = list(c(5, 15, -1), list('5', '15', 'All'))
              ), rownames = FALSE
    )
  })



}
shinyApp(ui, server)